2013-07-23 37 views
0

我有,我選擇name, id, date, priority等我的請求也選擇category,因爲類是在其他表我JOIN鏈接它,問題是category可以是空的,如果它空沒有ID,沒有ID表示JOIN不起作用,它不會顯示不含類別的票證,因爲它無法選擇類別名稱,有沒有辦法「嘗試」選擇類別名稱,以及是否它不能它留下類別名稱空白,但仍然選擇其他項目?嘗試選擇,但留下空白,如果失敗

+0

你想要的*外*加入。請參見[SQL連接的可視化解釋](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)。 – eggyal

+0

外連接沒有工作,當我替換'通過'外連接itilcategories ON itilcategories.id = tickets.itilcategories_id'將它加入itilcategories.id = tickets.itilcategories_id'時什麼都沒有顯示。 – Mokkun

回答

0

使用您提供的左側加入數據將起作用。

使用這兩個表:

|Tickets      | 
    +--+--------+----------+------+ 
    |ID|Name |Date  |Cat_id| 
    +--+--------+----------+------+ 
    |1 |Ticket 1|2013-07-13|1  | 
    +--+--------+----------+------+ 
    |2 |Ticket 2|2013-06-13|2  | 
    +--+--------+----------+------+ 
    |3 |Ticket 3|2013-06-25|4  | 
    +--+--------+----------+------+ 

    |Category | 
    +--+--------+ 
    |ID|Name | 
    +--+--------+ 
    |1 |sample 1| 
    +--+--------+ 
    |2 |sample 2| 
    +--+--------+ 
    |3 |sample 3| 
    +--+--------+ 

使用此查詢讓你在找什麼:

SELECT t.id, t.name 
    ,t.date, c.name FROM `stack overflow`.tickets as t 
    Left Join category as c on c.id = t.cat_id 

我得到的結果是:

|ID|Name |Date  |Name | 
    +--+--------+----------+--------+ 
    |1 |Ticket 1|2013-07-13|Sample 1| 
    +--+--------+----------+--------+ 
    |2 |Ticket 2|2013-06-13|Sample 2| 
    +--+--------+----------+--------+ 
    |3 |Ticket 3|2013-06-25|NULL | 
    +--+--------+----------+--------+ 
+0

問題是連接是爲了ID,我在加入後選擇類別名稱 – Mokkun

+0

您能否舉例說明您的數據是什麼樣的?每張桌子兩三行將會很有幫助。 –

+0

在表''''我有'id''名''日期''category_id'和在表'category'我有'id'和'name'我的完整查詢有點複雜,所以我只是給你的信息我認爲你需要。我選擇tickets.id tickets.name tickets.date category.name和我JOIN類別ON tickets.category_id = category.id像我說的問題是,當沒有類別在ticket.category_id id是空的,它不能選擇category.name – Mokkun