2013-04-30 151 views
0

這個查詢是給值nullaccessories_type.type但是這個表有值:LEFT JOIN沒有返回值

SELECT accessories.id, accessories.name, accessories_type.type 
FROM accessories 
LEFT JOIN accessories_type ON accessories_type.type = accessories.accessories_type_id; 
+2

請添加表格結構,示例數據和預期輸出。 – 2013-04-30 12:22:21

+0

是附件中類型ID不存在於accessories_Type中的零件上的空值?示例類型ID在附件中是10,但是我的accessories_Type沒有這樣的ID? (如果是這意味着沒有密鑰關係,則考慮)將additional.accessories_Type_ID添加到您的查詢中。這將有助於確定它在類型表中是否缺少值。 – xQbert 2013-04-30 12:23:43

+0

您的查詢似乎沒有任何錯誤,您需要發佈更多信息,如表格,數據示例等。 – SOfanatic 2013-04-30 12:23:51

回答

0

您的查詢是有點怪。 select子句中的值accessories_type.type與用於連接的值相同。

假設有在類型表中沒有重複的行,您可以通過執行獲得同樣的效果:

select id, name, accessories_type_id 
from accessories 

你的查詢另外尋找第二個表匹配。當沒有匹配時,你得到NULL。

通常情況下,我希望在select中有類似accessories_type.typename的東西。這給了我一個想法。也許你的意思是:

SELECT accessories.id, accessories.name, accessories_type.type 
FROM accessories 
LEFT JOIN accessories_type ON accessories_type.id = accessories.accessories_type_id; 

也就是說,你應該加入id。您加入name並且沒有匹配(一般情況下)。