2

我的第一个结果看起来像这样

ID       Name
----------------------------------
1        George
2        Peter
3        San

我的其他结果看起来像这样

AnotherID     ID     Note
-----------------------------------
1             1      georgesnote1
2             1      georgesnote2
3             3      sansnote1
4             1      georgesnote3

我希望他们看起来如何:

ID       Name        Note
----------------------------------
1        George      georgesnote1
1        George      georgesnote2
1        George      georgesnote3
2        Peter       NULL
3        San         sansnote1

我的 SQL 知识几乎限制了我实现这一目标。我想我需要像 UNION ALL 这样的东西。INNER JOIN 或 LEFT OUTER JOIN 不起作用。我的实际查询大约是 21 行,所以这不是一个初学者问题。我需要的是基于相同的 ID 加入两个结果。请有人指导我。

4

8 回答 8

2
SELECT 
  N1.ID, N1.Name, N2.Note 
FROM 
  Names N1
    LEFT JOIN Notes N2 ON N1.ID = N2.ID
ORDER BY
  N1.ID
于 2012-10-17T07:27:39.837 回答
2

你必须使用left join

select r1.id, r1.Name, r2.Note 
from result1 r1
left join result2 r2 on r2.id = r1.id
order by 1

但如果您的结果来自其他查询,请尝试添加这些查询,如下所示:

select r1.id, r1.Name, r2.Note 
from (select id,name from tab1) r1
left join (select id,note from tab2) r2 on r2.id = r1.id
order by 1

在这里你可以找到更多关于left join

于 2012-10-17T07:27:56.970 回答
2

你需要一个左连接。

查看http://www.w3schools.com/sql/sql_join_left.asp

假设第一个表称为first,第二个称为second。第一个表上的列 id 将与第二个表上的列id匹配

SELECT first.id, first.name, second.note
FROM first
LEFT JOIN second
ON first.id = second.id
ORDER BY first.id
于 2012-10-17T07:34:46.370 回答
2
select n.ID, n.Name, t.note 
  from names n 
  left join notes t
  on n.id = t.id
于 2012-10-17T07:42:17.787 回答
1
Select sur.ID, sur.NAME, not.NOTE 
FROM SURNAME sur
LEFT JOIN NOTES not
ON sur.ID = not.ID
于 2012-10-17T07:28:01.137 回答
1
select
    T1.ID,
    T1.Name,
    T2.Note
from Table1 as T1.ID
    left outer Table2 as T2 on T2.ID = T1.ID
于 2012-10-17T07:28:10.400 回答
1

LEFT JOIN是您在这里需要的,因为您想从 table1 中选择所有记录,无论它在 table2 上是否匹配

SELECT  a.ID, a.Name, b.Note
FROM    table1 a
        LEFT JOIN table2 b
            ON a.ID = b.ID
于 2012-10-17T07:29:13.990 回答
1
select table1.id,table1.name,table2.note from table1 left  join table2  on table1.id=table2.id
于 2012-10-17T07:29:28.603 回答