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