Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql:检查内部联接返回的所有行的where子句_Mysql_Inner Join_Where Clause - Fatal编程技术网

MySql:检查内部联接返回的所有行的where子句

MySql:检查内部联接返回的所有行的where子句,mysql,inner-join,where-clause,Mysql,Inner Join,Where Clause,我有这个疑问 SELECT * FROM posts INNER JOIN categories ON categories.post_id = posts.id INNER JOIN tags ON tags.category_id = categories.id WHERE tags.title = 'week_trend' 每个帖子都有多个类别,而且每个类别都有多个标签,我需要有带有指定标签的类别的帖子,但是所有帖子类别都应该有这个条件,即使其中一个类别没有达到这个条件,帖子也不应该被包

我有这个疑问

SELECT *
FROM posts
INNER JOIN categories ON categories.post_id = posts.id
INNER JOIN tags ON tags.category_id = categories.id
WHERE tags.title = 'week_trend'
每个帖子都有多个类别,而且每个类别都有多个标签,我需要有带有指定标签的类别的帖子,但是所有帖子类别都应该有这个条件,即使其中一个类别没有达到这个条件,帖子也不应该被包括在内。我的查询返回帖子,即使其中一个类别具有指定的标记

我几乎不知道该怎么做。有人能帮我吗

SELECT c.post_id
FROM categories c INNER JOIN tags t
ON t.category_id = c.id
GROUP BY c.post_id
HAVING COUNT(DISTINCT c.id) = SUM(t.title = 'week_trend')
返回所有与标题为“周趋势”的标签相关的类别的
post\u id
s
与子句中的
一起使用:

SELECT *
FROM posts 
WHERE id IN (
  SELECT c.post_id
  FROM categories c INNER JOIN tags t
  ON t.category_id = c.id
  GROUP BY c.post_id
  HAVING COUNT(DISTINCT c.id) = SUM(t.title = 'week_trend')
)

在连接帖子和类别时,是否应该指定帖子中的列和类别中的列?你从分类中指定了两列。是的,谢谢,但这只是一个简单的代码,用于说明我的问题。这不是什么大问题。这不是什么大问题吗?如果你发布了错误的代码,我看不出任何人能提供帮助。你对你想要的东西的描述是无法理解的。使用足够的单词、句子和引用部分例子,清楚、完整地说出你的意思。描述一个结果:说得够多,有人可以离开,然后带着解决方案回来。当给出一个业务关系(ship)/关联或表(base或query result)时,请说明其中的一行根据其列值表示的业务状况。请参阅,其他链接,点击谷歌“stackexchange作业”和文本上方的投票箭头鼠标。请在代码问题中给出一个--cut&paste&runnable代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。对于包含最少代码的错误,您可以给出“显示为OK”的代码,并通过“显示为not OK”的代码进行扩展。(调试基础。)用于包含DBMS和DDL的SQL,其中包括约束、索引和表格初始化。有了COUNT(不同的c.id)=SUM(t.title='week_trend')我就帮了大忙,谢谢。