2015-02-05 30 views
3

我有一个带有几个表格的MYSQL数据库,它们都具有相同的结构。我想要搜索所有表格以找到具有特定列值的行。我是否必须逐一搜索表格还是有更简单的方法?在同一个值中搜索多个表格

回答

4

很容易做到,也测试了MySQL工作台。

全选:

SELECT * FROM table_one, table_two; 

选择单个值从两个表中:

SELECT * FROM table_one, table_two WHERE field = 'some_val' 

选择多个值从两个表中:

SELECT * FROM table_one, table_two WHERE field = 'some_val' AND field2 = 'some_val' AND field3 = 'some_val' 
+1

我认为,更好地利用工会,因为独立用逗号表表示它是笛卡尔乘法和联合 - 不,即使你使用union all ... – 2015-02-05 19:43:22

+0

嗯。没有,适合我。 – technology101010 2015-02-05 19:54:17

+0

@StephenCarr是正确的,唯一可能做的不同是给每个表分配别名,这样你可以在唯一命名的列 – Matth3w 2016-01-07 00:24:11

1

你可以联合所有的表。你仍然需要逐个遍历所有的表,但在union情况下,你不会有笛卡尔乘积,因此,所有最好的:

SELECT column FROM table1 WHERE column = 'value' 
UNION ALL 
SELECT column FROM table2 WHERE column = 'value' 
;