我在尝试查询 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/