MYSQL的问题在一个查询中使用3个表

时间:2015-02-24 15:25:16

标签: php mysql

我正在努力使用mysql查询,我想创建一个包含多个表的查询,并且能够一次搜索所有三个表中的列或特定列,已经创建并填充了数据库和表。 (对不起,如果这很容易,但我在mysql上相当新)

示例:

表1

`ID`,`number`,`name`,`genre`,`location`,`type` 
1, 1001, Linkin Park, Rock, L001, cd
2, 1002, 3 doors down, Alternative, L002, cd
3, 1003, golden earring, Rock, L003, cd

表2

`ID`,`number`,`name`,`genre`,`location`,`type` 
1, 1001, Kill bill, Action, L001, dvd
2, 1002, Hulk, Action, L002, dvd
3, 1003, Driven, Action, L003, dvd

表2

`ID`,`number`,`name`,`genre`,`location`,`type` 
1, 1001, Call of Duty, Action, L001, Game
2, 1002, Battlefield, Action, L002, Game
3, 1003, Red Alert, strategy, L003, Game

类似的东西:

SELECT 'number', 'name', 'genre', 'location', 'type' FROM tb1, tb2, tb3 WHERE type = 'Game'

1 个答案:

答案 0 :(得分:1)

您可以实现所需目标的一种方法是制作所有表格的UNION,如下所示:

 SELECT `number`, `name`, `genre`, `location`, `type` FROM 
( SELECT `number`, `name`, `genre`, `location`, `type` FROM tb1
  UNION ALL
   SELECT `number`, `name`, `genre`, `location`, `type` FROM tb2
   UNION ALL 
  SELECT `number`, `name`, `genre`, `location`, `type` FROM tb3 ) tb123
WHERE tb123.`type` = 'Game'

但我实际上建议您考虑以不同方式设置数据库。例如,将所有内容放在一个表中。