似ている列と異なる列を含む 2 つのテーブルがあります。異なる列を 1 つの結果セットにマージする結果を返す必要がありますが、いずれかのテーブルが一致しない可能性がある条件が必要です。ユニオンを試しましたが、NULL 値を持つ 2 つの行が返されました。一つだけお願いします。以下に 2 つのテーブルの例を示します。
TableA
----------------------------------------------------
| ID | ColumnA | ColumnB | ForeignKeyA | TimeStamp |
----------------------------------------------------
| 1 | Val1 | Val2 | KeyA | 2013-01-01|
----------------------------------------------------
| 2 | Val3 | Val4 | KeyB | 2013-01-02|
----------------------------------------------------
TableB
------------------------------------------
| ID | ColumnC | ForeignKeyA | TimeStamp |
------------------------------------------
| 1 | Val5 | KeyA | 2013-01-01|
------------------------------------------
| 2 | Val6 | KeyC | 2013-01-02|
------------------------------------------
そして、ここにいくつかの疑似クエリと私が望む戻り値があります:
1)
SELECT TableA.ColumnA AS ColumnA,
TableA.ColumnB AS Column B,
TableB.ColumnC AS ColumnC,
TableA.id AS TableA_ID,
TableB.id AS TableB_ID
(WHERE ForeignKeyA in either table = KeyA and TimeStamp in either table = 2013-01-01)
>>
-------------------------------------------------------
| ColumnA | ColumnB | ColumnC | TableA_ID | TableB_ID |
-------------------------------------------------------
| Val1 | Val2 | Val5 | 1 | 1 |
-------------------------------------------------------
2)
SELECT TableA.ColumnA AS ColumnA,
TableA.ColumnB AS Column B,
TableB.ColumnC AS ColumnC,
TableA.id AS TableA_ID,
TableB.id AS TableB_ID
(WHERE ForeignKeyA in either table = KeyB and TimeStamp in either table = 2013-01-02)
>>
-------------------------------------------------------
| ColumnA | ColumnB | ColumnC | TableA_ID | TableB_ID |
-------------------------------------------------------
| Val3 | Val4 | Null | 2 | Null |
-------------------------------------------------------
3)
SELECT TableA.ColumnA AS ColumnA,
TableA.ColumnB AS Column B,
TableB.ColumnC AS ColumnC,
TableA.id AS TableA_ID,
TableB.id AS TableB_ID
(WHERE ForeignKeyA in either table = KeyC and TimeStamp in either table = 2013-01-02)
>>
-------------------------------------------------------
| ColumnA | ColumnB | ColumnC | TableA_ID | TableB_ID |
-------------------------------------------------------
| Null | Null | Val6 | Null | 2 |
-------------------------------------------------------