2011-05-01 132 views
0

第一个表的条件选择具有字段: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上。

+0

您可以发布这两个表有字段? – 2011-05-01 23:57:08

回答

1

我会写类似:如果您在连接两个表相同的字段名称

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