【发布时间】:2014-12-31 16:34:06
【问题描述】:
我正在尝试从 2 个表中选择项目,它应该返回 2 个结果,但我得到的结果超过 1000 个:
$sqlH = 'SELECT * FROM sheikh_tbl, wall';
$sqlH .= ' WHERE shk_fname LIKE "%'.$keyword.'%"';
$sqlH .= ' OR shk_mname LIKE "%'.$keyword.'%"';
$sqlH .= ' OR shk_lname LIKE "%'.$keyword.'%"';
$sqlH .= ' OR (srub = "Sawtiyat" AND wtitle LIKE "%'.$keyword.'%")';
感谢您向我解释查询问题
编辑:使用 UNION ALL 代替 UNION
【问题讨论】:
-
然后呢?您对我们有什么期望?
-
您将从使用 OR 语句开始。将为这些列中的任何一个返回匹配的结果。您可能想使用 and 而不是 OR?
-
您返回的 1000 个结果 - 它们是否有效?您希望根据您的数据返回 2 个结果,还是希望将结果限制为仅返回 2 个结果?
-
更好地使用内连接来匹配仅记录,这会导致每一行从一个表交叉连接到另一个。
-
你可能是想加入表格?墙的目的是什么?它从未在查询中引用