在mysql中搜索多个表

时间:2013-01-28 21:00:28

标签: mysql search

我有一个像这样的结构表(不是实际的数据或字段,但适用相同的结构):

ID | City        Field2 Field 3
-------------------------------
1    New York    Ohio   data      
2    Cincinnati  data   data
3    Los Angeles data   Ohio
4    Cleveland   data   data

然后有第二个表格(再次,不是实际数据)

City        State
-------------------------------
Los Angeles California
New York    New York
Cincinnati  Ohio
Cleveland   Ohio
Houston     Texas

等。

我有一个允许用户搜索数据库的php网页;当他们这样做时,它会自动打印(在我的例子中)城市之后的第二张表中的相应状态。

但是,如果用户搜索“Ohio”,它应该返回所有四个记录,即使第一个表中不存在“Ohio”。看起来我必须运行多个查询 - 在第一个表中找到搜索词,在第二个表中再次找到它,然后在第一个表中搜索第二个表的第1列(然后加入结果) 。有更简单的方法吗? (我对MySQL很新。)

1 个答案:

答案 0 :(得分:1)

您是否尝试使用UNION

SELECT City FROM table1 WHERE Field2 = 'Ohio' OR Field3 = 'Ohio'
UNION ALL
SELECT City FROM table2 WHERE State = 'Ohio'

查看查询的内容会很有帮助。