簡體   English   中英

SQL Query根據表中的2條記錄從1個表中獲取記錄

[英]SQL Query to fetch record from 1 tables based on 2 records in the table

我必須編寫一個查詢,它將顯示特定類型的前25個game_id。 數據庫表就像

| id | genre_id | game_id | is_primary |
----------------------------------------
  1    6000       12345      0
  2    6007       12345      1
  3    6000       23492      0
  4    6007       82837      1
----------------------------------------

在這里,您可以看到記錄1和2對於is_primary = 0和1都具有相同的game_id。我要做的是執行同時具有genre_id和我的查詢,並且我必須獲取同時屬於兩者的game_id。 表示game_id,其中genre_id為6000,is_primary = 0,6007為genre_id,is_primary = 1。

在網上搜索但沒有成功。

我試過這個查詢

 SELECT game_id FROM table_name WHERE 
(SELECT game_id FROM table_name WHERE genre_id=6000 AND is_primary=0) 
AND ganre_id=6007 AND is_primary=1;

但是,當Subquery returns more than one value此查詢會出錯。

試試這個查詢(更新)

SELECT game_id FROM table_name WHERE game_id IN(SELECT game_id FROM table_name WHERE genre_id=6000 AND is_primary=0)
 AND ( ganre_id=6007 AND is_primary=1);

JOIN比子查詢執行得更好

SELECT t1.game_id
FROM table_name t1
JOIN table_name t2 ON (t1.game_id = t2.game_id AND t2.genre_id = 6000 AND t2.is_primary = 0)
WHERE (t1.genre_id = 6007 AND t1.is_primary = 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM