从两个不同的表MYSQL中查询相同的字段

时间:2011-11-24 00:23:54

标签: 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

1 个答案:

答案 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."' )