2012-10-17 121 views
2

我的第一个结果是这样的加入两个SQL结果

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这样的东西。内部联接或左外部联接不起作用。我的实际查询大约有21行,所以这不是初学者的问题。我需要的是基于相同的ID加入两个结果。请有人指导我。

+0

选择n.ID,n.Name,从名字t.note ň 留在n.id = t.id –

+0

大家加入笔记牛逼 。感谢您的帮助。真的很感激!根据给定的答案修复了我的查询,并从第一个答案中选择了第一个答案。 –

回答

2

你需要一个LEFT JOIN什么您这里需要。

退房http://www.w3schools.com/sql/sql_join_left.asp

Assugming第一表被称为第一和第二被称为第二。 第一张桌子上的列ID将与第二张桌子上的列ID匹配。

SELECT first.id, first.name, second.note 
FROM first 
LEFT JOIN second 
ON first.id = second.id 
ORDER BY first.id 
+1

它应该是'ON first.id = second.id' –

+0

是的,对不起。编辑。 – Baconator507

+0

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 
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 

Here你可以找到更多infogramation about left join

+0

为什么-1?或许请点评? – Parado

1
Select sur.ID, sur.NAME, not.NOTE 
FROM SURNAME sur 
LEFT JOIN NOTES not 
ON sur.ID = not.ID 
1
select 
    T1.ID, 
    T1.Name, 
    T2.Note 
from Table1 as T1.ID 
    left outer Table2 as T2 on T2.ID = T1.ID 
1

LEFT JOIN是因为你想从表1中选择的所有记录whetehr它有一个匹配的或不按表2

SELECT a.ID, a.Name, b.Note 
FROM table1 a 
     LEFT JOIN table2 b 
      ON a.ID = b.ID 
1
select table1.id,table1.name,table2.note from table1 left join table2 on table1.id=table2.id 
2
select n.ID, n.Name, t.note 
    from names n 
    left join notes t 
    on n.id = t.id 
+0

关于为什么左连接不起作用的意见,将不胜感激。 –

+0

我想加入另一个表(现在在我的第二个查询中)到我的第一个带有左外连接的查询。出于某种原因,同样的结果显示x4次,只是无法修复它。然后我开始寻找一种方法来加入两个不同的查询,以便我可以得到合适的结果。在我的情况下,左外部没有工作。 –

+0

也许你应该粘贴这两个查询 –