0
我有兩個表。創建如下。過濾MySQL根據連接表的字段進行選擇
CREATE TABLE item (
id INT AUTO_INCREMENT,
value VARCHAR(64),
PRIMARY KEY(id)
)
CREATE TABLE tag (
name VARCHAR(32),
item_id INT /* id of element in item table */
)
我有與「標籤」錶鏈接到表的所有元素一起返回在「項目」表元素的列表的SELECT語句。它在item.value字段的內容上被過濾。
SELECT id,value,GROUP_CONCAT(tag.name) FROM item
LEFT JOIN tag ON tag.item_id = id
WHERE value LIKE '%test%'
目前爲止都不錯。現在我想要做同樣的事情,但是要獲取與它關聯的特定標記的所有項目表元素的列表。所以我
WHERE tag.name='test'
這給了我所有有來與它一起只包括標籤「測試」標籤「測試」,但分組的標籤列表中的「項目」元素的列表替換WHERE查詢。
如何獲得表'item'中具有tag'test'以及完整組標記列表的所有元素的列表?
缺乏GROUP BY是一個錯字,但HAVING我沒有嘗試過,它似乎工作,歡呼 – Spads
似乎我也可以使用HAVING SUM(t.name ='test')= 0捕獲物品沒有該標籤解決了我的另一個問題,即它不會返回NOT子句中沒有標籤的項目。乾杯 – Spads