问题描述
|
第一个表包含以下字段:
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 )
。
使代码更具可读性。
更新:修正错别字