Php 从两个不同的表中查询同一字段
我在尝试查询3个表和2个具有相同字段的表时遇到了问题。使用php和mysql 范例 表 表B 表C 查询中的关键字将是搜索词Php 从两个不同的表中查询同一字段,php,mysql,sql,Php,Mysql,Sql,我在尝试查询3个表和2个具有相同字段的表时遇到了问题。使用php和mysql 范例 表 表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
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标题字段合并到查询中
因此,如果有title=America的TableA和title=American的TableB,它将显示两个表的两个结果,因为它将匹配类似的查询
然后用PHP显示结果。如果表A或表B匹配,则显示该结果。并在阵列中循环等
它必须在查询中,因为我将它用作搜索参数
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."' )
做一个工会:
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."' )
好的,我认为工会必须在表中有相同的列。我试试看。哦,是的,那不行,因为TableB没有TableA的ID表。所以我不能做同样的查询。它们不是相同的表。假设一张桌子是放歌曲的桌子,另一张桌子是放收藏夹的桌子。两者都有标题字段,可以有不同的数据。如果有匹配项,我希望它显示歌曲标题或收藏夹标题,或者显示匹配项的数量。联合中的每个查询必须具有相同的列数,每个对应列的数据类型相同。其他一切都是有效的。因此,您必须根据需要修改TableB上的查询,但这应该仍然有效。谢谢,我认为这样做了。我以前从未使用过联合,主要是加入,但这确实很有帮助。它得到了我需要的东西。太棒了。好吧,我认为工会必须在表格中有相同的列。我试试看。哦,是的,那不行,因为TableB没有TableA的ID表。所以我不能做同样的查询。它们不是相同的表。假设一张桌子是放歌曲的桌子,另一张桌子是放收藏夹的桌子。两者都有标题字段,可以有不同的数据。如果有匹配项,我希望它显示歌曲标题或收藏夹标题,或者显示匹配项的数量。联合中的每个查询必须具有相同的列数,每个对应列的数据类型相同。其他一切都是有效的。因此,您必须根据需要修改TableB上的查询,但这应该仍然有效。谢谢,我认为这样做了。我以前从未使用过联合,主要是加入,但这确实很有帮助。它得到了我需要的东西。太棒了。请去阅读并准备好声明。还有买/偷你自己的书。@tereško我还得看更多的SQL教程。我需要更多的帮助,而不是PHP。请去读一读并准备好声明。还有买/偷你自己的书。@tereško我还得看更多的SQL教程。我需要更多的帮助,而不是PHP。谢谢