sql >> データベース >  >> RDS >> Mysql

SQL-日付値が異なる2つのテーブルを組み合わせる

    クエリ: SQLFIDDLEExample

    SELECT a.stock_id,
           a.date,
           a.open,
           a.high,
           a.low,
           a.close,
           a.volume,
           a.p_high,
           a.p_low
    FROM (
    SELECT t1.stock_id,
           t1.date,
           t2.open,
           t2.high,
           t2.low,
           t2.close,
           t2.volume,
           t1.p_high,
           t1.p_low
    FROM table1 t1
    LEFT JOIN table2 t2 ON t1.date = t2.date
    UNION
    SELECT t2.stock_id,
           t2.date,
           t2.open,
           t2.high,
           t2.low,
           t2.close,
           t2.volume,
           t1.p_high,
           t1.p_low
    FROM table1 t1
    RIGHT JOIN table2 t2 ON t1.date = t2.date ) a
    WHERE a.stock_id = 3
    

    結果:

    | STOCK_ID |                            DATE |   OPEN |   HIGH |    LOW |  CLOSE | VOLUME | P_HIGH |  P_LOW |
    -------------------------------------------------------------------------------------------------------------
    |        3 | February, 26 2013 00:00:00+0000 | (null) | (null) | (null) | (null) | (null) |    100 |     80 |
    |        3 | February, 25 2013 00:00:00+0000 | (null) | (null) | (null) | (null) | (null) |    100 |     80 |
    |        3 | February, 24 2013 00:00:00+0000 |     90 |    110 |     70 |     90 |    250 |    100 |     80 |
    |        3 | February, 23 2013 00:00:00+0000 |     90 |    110 |     70 |     90 |    250 |    100 |     80 |
    |        3 | February, 22 2013 00:00:00+0000 |     90 |    110 |     70 |     90 |    250 | (null) | (null) |
    |        3 | February, 21 2013 00:00:00+0000 |     90 |    110 |     70 |     90 |    250 | (null) | (null) |
    


    1. MariaDBでのTO_DAYS()のしくみ

    2. MySQLジオメトリの交差により、交差しない結果が生成されます

    3. PHPとmySQLで1つのステートメントで複数の更新クエリを実行する方法

    4. FOREIGN KEYは、同じテーブルの列を参照します。値を挿入できません