2013-06-29 40 views
0

有兩個表在我的數據庫:如何選擇的相關信息,其中在另一個表中的一些信息是NULL

表1

id name extra_id 
1 name1 2 
2 name2 4 
3 name3 6 
4 name3 2 

表2稱爲額外

id blah blah 
1 blah1 blah2 
3 blah1 blah2 
5 blah1 blah2 
6 blah1 blah2 

現在我希望在表1中選擇id:1和id:2和id:4,並按extra_id分組,導致table2中沒有相應的數據。

+0

我不知道我明白了,你想要的只是ID?爲什麼分組呢? :) –

+0

我認爲他誤解了如何通過工作組,他沒有得到選定的行,因爲他們不會返回在他嘗試的SQL中,因爲沒有數據可供選擇,他需要一個左連接。 –

回答

0

使用左連接,這將讓你仍然選擇這些行,它只是設置沒有數據的列空

SELECT a.*,b.* 
FROM table1 as a 
LEFT JOIN 
extra as b 
ON a.extra_id=b.id 
0

這會給你的ID在表1有中沒有對應的行「額外」。
由於只有一列,因此無需分組。

SELECT DISTINCT Table1.id 
FROM Table1 
LEFT JOIN extra 
    ON Table1.extra_id=extra.id 
WHERE extra.id IS NULL 

>> 1 
>> 2 
>> 4 

An SQLfiddle to test with

+0

如何編寫,如果我想通過extra_id對ID進行分組? – yudun1989

+0

@ yudun1989你可以在查詢中加入你想要的結果嗎?像[this](http://sqlfiddle.com/#!2/2a5e8/7)? –

相關問題