mysql - 在mysql中搜索多个表

标签 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 还很陌生。)

最佳答案

您尝试过使用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/

相关文章:

windows - 如何使用 Windows Search 搜索 Jar 文件?

没有循环或 if 语句的 Java 字符串搜索?

java - 错误的字符串值 : '\xF0\x9F\xA4\x96<b…' for column 'body' at row 1

mysql - 如何查看MySql用户的创建时间?

mysql - Rails 3 ORDER BY FIELD 和最后一个

python - 使用拼写检查进行查询分段

mysql - MySQL中的重音不敏感搜索查询

mysql - 当两个表都包含 NULL 时如何加入

php - 如何整理mysql查询的字符串

javascript - 多个子字符串的 jquery/javascript 检查字符串