2012-11-10 119 views
1

我有2個表,book和temp_table。 書中有2列:book_id and tag_id,temp_table中只有1列(tag_id)。加入2個表的sql查詢

我需要做下面的使用規則選擇:

  • 如果書中有所有的temp_table標籤,這將是結果。

例如,有3本書。

First one has tag_id: 1,2,3,4. 
    Second - 1,3,4 
    Third - 1,2,3,5 

而temp_table包含tag_id:1,3,4

需要的選擇必須包含第一本和第二本書。三維圖書不能放在結果集中,因爲它的tag_id = 5,這不在temp_table中。

+0

如果第三本書不能在結果中,因爲它已經TAG_ID = 5,爲什麼第一本書應該拿出的結果,如果它已經TAG_ID = 2,因爲temp_table沒有TAG_ID = 2 ? – BernaMariano

回答

1
select book_id 
from book b 
inner join temp_table t on t.tag_id = tag_id 
group by book_id 
having count(distinct tag_id) = (select count(distinct tag_id) from temp_table) 
+0

謝謝。有用。 – Innik