第一个表包含字段:
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/