SQL查询来从一个表基于来自不同的表
问题描述:
第一个表的条件选择具有字段:SQL查询来从一个表基于来自不同的表
A_ID,B_ID,FIELD1,FIELD2
第二个表有字段
C_ID, A_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)
。
使代码更具可读性。
更新:固定错字
+0
我做了一个小修改,但基本的想法很好。 SELECT post。* FROM post LEFT JOIN subscription USING(idpost)WHERE subscription.iduser = 22; – 2011-05-02 00:31:45
您可以发布这两个表有字段? – 2011-05-01 23:57:08