我必须编写一个查询来显示特定类型下的前 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,genre_id为6007,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;
但是此查询出现错误,因为子查询返回多个值
。
最佳答案
尝试此查询(已更新)
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);
关于mysql - SQL查询根据表中的2条记录从1个表中获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510879/