0
我有一個屬性系統,我可以在其中將自定義字段應用於產品,如品牌,尺寸等...... 在網站的前端,您會看到一個列表產品和屬性要過濾的名單和項目的數量預期:屬性查詢;還包括內部連接沒有匹配的屬性
- 品牌A(12)
- 品牌B(8)
- ...
尺寸:
- 大小(9)
- 尺寸B(11)
我想更新的屬性列表,並過濾後包括那些沒有「命中」的記載。用我目前的查詢,我只會得到那些有記錄的記錄。
總之:如何獲得0項目屬性?
我有此查詢(例如一個屬性過濾器中選擇)
SELECT
attr.id, attr.title
, attrval.value, attrval.id as valid
, COUNT(attrlink.id) AS attrcount
FROM #__foc_users_attributes AS attr
LEFT JOIN #__foc_users_attr_val AS attrval
ON attrval.attrid = attr.id AND attrval.value !=''
LEFT JOIN #__foc_users_attr_link AS attrlink
ON (attrlink.valueid = attrval.id)
LEFT JOIN #__foc_users_items AS item
ON (item.id = attrlink.itemid)
INNER JOIN #__foc_users_attr_link AS attrlink1
ON attrlink1.itemid = item.id
AND ((attrlink1.attrid=1 AND attrlink1.valueid=33))
WHERE item.published=1 AND attr.published = 1 AND attrval.value != ''
GROUP BY attrval.id
也許表架構可以提供幫助。解決方案可能會將#__foc_users_items寫入第一個表,併爲其他所有人進行左連接,爲什麼#__foc_users_attr_link有內連接而不是左連接? – danihp
你是對的;我爲每個不同的屬性組使用了左連接,並立即開始工作!感謝您的回覆。 – Bert