2011-05-01 128 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