我的第一个结果看起来像这样
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加入两个结果。请有人指导我。
答案 0 :(得分:2)
SELECT
N1.ID, N1.Name, N2.Note
FROM
Names N1
LEFT JOIN Notes N2 ON N1.ID = N2.ID
ORDER BY
N1.ID
答案 1 :(得分: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
但如果你的结果来自其他quires,请尝试添加以下这些quires:
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
Here您可以找到有关left join
答案 2 :(得分:2)
你需要一个LEFT JOIN。
结帐http://www.w3schools.com/sql/sql_join_left.asp
宣称第一个表格为第一个,第二个表格称为第二个。 第一个表格中的 id 列将与第二个表格中的 id 列相匹配。
SELECT first.id, first.name, second.note
FROM first
LEFT JOIN second
ON first.id = second.id
ORDER BY first.id
答案 3 :(得分:2)
select n.ID, n.Name, t.note
from names n
left join notes t
on n.id = t.id
答案 4 :(得分:1)
Select sur.ID, sur.NAME, not.NOTE
FROM SURNAME sur
LEFT JOIN NOTES not
ON sur.ID = not.ID
答案 5 :(得分:1)
select
T1.ID,
T1.Name,
T2.Note
from Table1 as T1.ID
left outer Table2 as T2 on T2.ID = T1.ID
答案 6 :(得分:1)
LEFT JOIN
就是你需要的,因为你想要从table1中选择所有记录,只要它们与table2匹配或不匹配
SELECT a.ID, a.Name, b.Note
FROM table1 a
LEFT JOIN table2 b
ON a.ID = b.ID
答案 7 :(得分:1)
select table1.id,table1.name,table2.note from table1 left join table2 on table1.id=table2.id