2013-07-08 70 views
0

我有2個表。SQL Mach 2表

表1

  • 具有計數約2700行
  • Colums:ID,NO,NAME

表2:

  • 具有計數大約300行
  • Colums: ID,名稱

其中:

Table1.NO = Table2.ID 

我想列出表1(2700行),但如果表1中不包含一些表2的行我想寫「NA」

我怎麼能做到這一點與SQL?

回答

1

我假設你要輸出從表2的名稱,如果它的存在,在這種情況下:

SELECT 
    a.id, 
    isnull(b.name, 'NA'), 
    a.name 
FROM 
    table1 a 
LEFT JOIN 
    table2 b 
    ON 
    a.no = b.id 

會爲你做它(我也輸出了table1的id和name)。

編輯:

道歉,我沒有看到MySQL的標籤,直到我張貼。您將需要使用​​3210功能,而是如果isnull,就像這樣:

SELECT 
    a.id, 
    coalesce(b.name, 'NA'), 
    a.name 
FROM 
    table1 a 
LEFT JOIN 
    table2 b 
    ON 
    a.no = b.id 
1

嘗試LEFT JOINISNULL功能像下面這樣

SELECT ISNULL(Table1.Name,'NA') 
FROM Table1 
LEFT JOIN Table2 
ON Table1.NO = Table2.ID 
+0

有ISNULL函數在MySQL? –

+0

是的,http://forums.asp.net/t/1162409.aspx/1 – 5uperdan