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


Problems with MYSQL use 3 tables in one query

我正在处理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'

实现所需功能的一种方法是制作所有表的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'

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