編輯2:
這裏沒有什麼可以找到的,它是我在其他地方的失敗。
誰知道!= NULL
在MySQL中不起作用。
版主刪除此內容?MySQL加入問題
我得到了一個eav
數據庫,我需要從中選擇一些具有屬性的產品。
當我使用
select attribute1.value as a1, attribute2.value as a2, products.id
from attributes attribute1, attributes attribute2, products
where product.id = attribute1.product_id and attribute1.name = 'abc' and
product.id = attribute2.product_id and attribute2.name = 'def'
當一個屬性上缺少一個產品我沒有得到所有的產品,我需要得到所有產品NULL
如果有缺少的屬性。
當我使用
select attribute1.value as a1, attribute2.value as a2, products.id
from products
left join attributes as attribute1 on (product.id = attribute1.product_id and attribute1.name = 'abc')
left join attributes as attribute2 on (product.id = attribute2.product_id and attribute2.name = 'def')
我得到的所有產品,但所有產品都a1 = NULL
即使他們不數據庫時。
問題是什麼?
實施例:
產品:
id
1000
1001
1002
1003
屬性:
name product_id value
abc 1000 1
abc 1002 2
def 1000 3
def 1001 4
預期結果:從第一查詢
id a1 a2
1000 1 3
1001 NULL 4
1002 2 NULL
1003 NULL NULL
結果:
0從第二查詢id a1 a2
1000 1 3
結果:
id a1 a2
1000 NULL 3
1001 NULL 4
1002 NULL NULL
1003 NULL NULL
編輯:
固定第二個查詢和示例。
可否請你發佈一些示例數據庫條目,你會從查詢什麼期望?你的第二個查詢似乎也缺少了FROM子句。 – Zulan 2011-02-25 21:49:59
@Zulan添加編輯 – Dani 2011-02-25 21:57:50
除了一些更多的拼寫錯誤(product ** s ** .id),編輯後的查詢是正確的。它應該給出正確的結果。 – Zulan 2011-02-25 22:08:10