第一个表包含字段:

A_id,B_id,field1,field2

第二个表有字段

C_id,A_id,B_id

我想选择第一张表中所有包含B_id的行,第二行上也存在B_id,而且,我只希望那些具有特定A_id的行。我试图使用JOIN语句,但是我找不到正确的语句。到目前为止,我已经尝试过类似这样的查询,但是它们无法产生理想的结果:

    SELECT post.* FROM post INNER JOIN subscription ON  subscription.iduser = 22 WHERE post.iduser = 22;


顺便说一句,所有这些都在MySQL上。

最佳答案

我会写类似:

SELECT post.*
FROM post
LEFT JOIN subscription USING (iduser)
WHERE subscription.iduser = 22


如果您在两个表中具有相同的字段名称,则JOIN subscription ON subscription.iduser = post.iduser可以写为JOIN subscription USING( iduser )

使代码更具可读性。



更新:修正错别字

关于mysql - SQL查询基于另一个表中的条件从一个表中选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5852297/

10-13 07:14