我一直在尝试使用相同的字段查询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
答案 0 :(得分:3)
做一个工会:
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."' )