-1

我有两个需要连接的表(Table1 和 Table2)。

该列id链接表 1 和表 2。

  • 输出表需要包含 Table1 中的所有行。

  • 表 2 有不应出现在输出表中的重复项。

  • 如果 Table2 中的重复行在NULL给定的列中具有id,并且如果 Table2 中的另一行在该列中具有相同的值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

感谢您的时间!

4

1 回答 1

3

请参阅SQL 小提琴

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 
于 2013-10-19T00:08:42.847 回答