如何通过数据透视表选择一行

时间:2015-11-10 22:34:13

标签: mysql

我有一个数据库,存储街机游戏的名称和它们组成的ROM芯片。我有两个MySQL表:mame_gamesmame_roms如下所示:

mame_games
------------
id  | name

mame_roms
------------
id   |  crc

和数据透视表(作为ROM可以属于多个游戏,游戏有多个ROM)​​:

mame_games_mame_roms
--------------------
id   |   mame_games_id   |   mame_roms_id

我要做的是选择由一组特定ROM组成的游戏。例如,假设我有三个ROM,其CRC值为' 12345'' 54321'并且' abcde'。我想从mame_games中选择与这三个ROM相关联的游戏。所以,如果我有以下数据:

mame_games
------------
id  | name
1   | gameA
2   | gameB

mame_roms
------------
id   |  crc
1    |  12345
2    |  09876
3    |  54321
4    |  abcde

mame_games_mame_roms
--------------------
id   |   mame_games_id   |   mame_roms_id
1    |   1               |   1
2    |   2               |   2
3    |   1               |   3
4    |   1               |   4

我想选择gameA。

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

select
 distinct g.name
from 
  mame_game g,
  mame_roms r,
  mame_games_mame_roms p
where 
  r.crc in ( '12345', '54321’,'abcde’)
  and r.id = p.mame_roms_id
  and p.mame_game_id = g.id;