我有一个像这样结构的表(不是实际的数据或字段,但应用相同的结构):
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 还很陌生。)
最佳答案
您尝试过使用UNION
吗?
SELECT City FROM table1 WHERE Field2 = 'Ohio' OR Field3 = 'Ohio'
UNION ALL
SELECT City FROM table2 WHERE State = 'Ohio'
了解您的查询是什么样子会很有帮助。
关于mysql - 在mysql中搜索多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571151/