php - MYSQL 两个不同表查询相同字段

标签 php mysql sql

我在尝试查询 3 个表和 2 个具有相同字段的表时遇到问题。使用 php 和 mysql

示例

表A 表B 表C

查询中的关键字将是一个搜索词。

SELECT 
   title 
FROM TableA as A 
LEFT JOIN TableC as C 
   ON TableA.id=TableC.id 
WHERE 1 
   AND TableC.private='0' 
   AND ( 
        title LIKE '".$keyword."%' 
     OR title LIKE '%".$keyword."%' 
     OR title LIKE '%".$keyword."' 
     OR title = '".$keyword."' 
   )

我遇到的问题是我还需要同时在 TableB 中搜索标题并根据相同的关键字进行匹配。如何将 TableB 标题字段合并到查询中?

因此,如果 TableA 的 title=America 和 TableB 的 title=American ,它将显示两个表中的两个结果,因为它将与 LIKE 查询匹配。

然后用PHP显示结果。如果 TableA 或 TableB 匹配,则显示该结果。并循环遍历数组等。

它必须在查询中,因为我将它用作搜索参数。

TIA

最佳答案

建立联盟:

SELECT title FROM TableA as A LEFT JOIN TableC as C ON TableA.id=TableC.id WHERE 1 AND TABLEC.private='0' AND ( title LIKE '".$keyword."%' OR title LIKE '%".$keyword."%' 
             OR title LIKE '%".$keyword."' OR title = '".$keyword."' )
UNION
SELECT title FROM TableB as B LEFT JOIN TableC as C ON TableB.id=TableC.id WHERE 1 AND TABLEC.private='0' AND ( title LIKE '".$keyword."%' OR title LIKE '%".$keyword."%' 
             OR title LIKE '%".$keyword."' OR title = '".$keyword."' )

关于php - MYSQL 两个不同表查询相同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250911/

相关文章:

sql - 比较并更新字符串中的两个字符

php - php通过其值之一合并两个或多个ArrayIterators

javascript - 尝试将 mysql 数据库数据传输到 javascript 数组

mysql - "USING table1, table1 as vtable"在MySQL中是什么意思?

mysql - 如何使用mysql提取值函数从xml中检索数据

php - SELECT * FROM 不选取 MySQL 表中的第一行

php - 基于数据库 PHP 未选中复选框

php - criteria->group 不适用于 yii

mysql - 使用 GROUP BY 进行不同计数

php - 获取数据库中排名前十的出版商列表