我有两个表(Table1和Table2)需要加入。
列id
链接Table1和Table2。
输出表需要包含Table1中的所有行。
表2有重复项,不应出现在输出表中。
如果表2中的重复行在给定NULL
的列中具有id
,并且表2中的另一行在此列中具有相同id
的值,那么输出表应该包含值而不是NULL
。 (例如,如下例中的id
002,003和005)
如果重复行包含给定id
的同一列的不同值。可以将任何值带到输出表。 (例如,如下例中的id
001)
示例:
表1:
ID Value1
---- ------
001 Mary
002 Jane
003 Peter
004 Smith
005 Katy
表2:
ID Value2 Value3
---- ------ ------
001 25 33
001 25 38
001 NULL 33
002 NULL NULL
002 18 56
003 22 NULL
005 NULL 34
我需要加入表格并获得以下结果:
ID Value1 Value2 Value3
---- ------ ------ ------
001 Mary 25 33
002 Jane 47 88
003 Peter 22 NULL
004 Smith NULL NULL
005 Katy NULL 34
感谢您的时间!
答案 0 :(得分:3)
请参阅SQL Fiddle:
SELECT DISTINCT T1.ID, T1.Value1,
(
SELECT ST2.Value2
FROM Table2 ST2
WHERE T1.ID = ST2.ID
ORDER BY ST2.Value2
LIMIT 1
) AS Value2,
(
SELECT ST3.Value3
FROM Table2 ST3
WHERE T1.ID = ST3.ID
ORDER BY ST3.Value3
LIMIT 1
) AS Value3
FROM Table1 AS T1