Mysql 如何使用“LIKE”并保持连接值
我有三张桌子: Category +-------------+----------+ | category_id | name | +-------------+----------+ | 1 | Business | +-------------+----------+ | 2 | Sport | +-------------+----------+ | 3 | Games | +-------------+----------+ 问题是当我使用此选项时: 选择*,GROUP_CONCATcat.name FROM news n JOIN CatNews c ON n.id=c.newsid JOIN category cat ON c.cat_id=cat.category_id和cat.name,如“%Games%”按n.id分组 这让我想起: 我如何使用LIKE查找事件,但保留GROUP_CONCAT的值Mysql 如何使用“LIKE”并保持连接值,mysql,sql,join,Mysql,Sql,Join,我有三张桌子: Category +-------------+----------+ | category_id | name | +-------------+----------+ | 1 | Business | +-------------+----------+ | 2 | Sport | +-------------+----------+ | 3 | Games | +-------------+--
我想保留[Sport,Games]我想您希望返回包含游戏的新闻项目。如果是,这是正确的逻辑:
SELECT n.*, GROUP_CONCAT(c.name)
FROM news n JOIN
CatNews cn
ON n.id = cn.newsid JOIN
category c ON cn.cat_id = c.category_id
GROUP BY n.id
HAVING SUM(category_id = 'Games') > 0;
使用SELECT*。。。按n.id分组是错误的SQL。
CatNews
+---------+--------+
| news_id | cat_id |
+---------+--------+
| 1 | 1 |
+---------+--------+
| 2 | 3 |
+---------+--------+
| 2 | 2 |
+---------+--------+
id | title | news_id | cat_id | name | GROUP_CONCAT(cat.name)
2 | Electric flying cars | 2 | 3 | Sport | Sport, Games
id | title | news_id | cat_id | name | GROUP_CONCAT(cat.name)
2 | Electric flying cars | 2 | 3 | Games | Games
SELECT n.*, GROUP_CONCAT(c.name)
FROM news n JOIN
CatNews cn
ON n.id = cn.newsid JOIN
category c ON cn.cat_id = c.category_id
GROUP BY n.id
HAVING SUM(category_id = 'Games') > 0;