我想创建一个SQL来获取用户名为Mark
,并且是具有ID 1
和3
的帖子的作者。检查行是否有特定的孩子加入
注意:我不知道有多少帖子需要检查。所以它可能需要使用PHP来生成这部分SQL查询。
如何做到这一点?
用户表:
+----+----------+
| id | name |
+----+----------+
| 1 | Mark |
| 2 | John Doe |
+----+----------+
帖子表
+----+-------------+-------------+
| id | text | author_id |
+----+-------------+-------------+
| 1 | First Post | 1 |
| 2 | Second Post | 2 |
| 3 | Last Post | 1 |
+----+-------------+-------------+
这只是使用的样品的情况下,不是真正的数据。
注:我知道如何检查用户是否在一篇文章中是作者,但在同一行中不是多个。所以基本上,这是我需要帮助,我想它一定是left join
。
为了使名为Mark
并检查用户的检查,如果他是笔者的文章ID 1
我做了以下内容:
SELECT users.*
FROM users
INNER JOIN posts
ON users.id = posts.author_id
WHERE
users.name = 'Mark'
&&
posts.author_id` = 1
你正在做一个内部连接。你只能在Mark的作者那里获得'posts',这意味着'where'子句中的'posts.author_id'测试是多余的 - 它已经在'join'级别执行了。 –
我明白了,这是一个不好的例子。感谢您指出:) –