我正在尝试在SQL中进行查询,但我想在同一查询中加入2个表。我在PHP中使用此代码:
SELECT * FROM table1, table1
WHERE value1 LIKE '$q%'
OR value2 LIKE '$q%'
LIMIT 10
Table1和table2是不同的表,table1没有value2列,table2没有value1列。
我的想法是检查PHP是否有一个特定的列(只有table1有),然后它将返回table1具有的列的值。如果它检测到该行具有table2特定列,则它将返回表2所具有的列的值。
甚至有办法做到这一点?
答案 0 :(得分:3)
由于这两个表不相关,因此在同一查询中获取结果的唯一有意义的方法是使用UNION
:
SELECT * FROM table1 WHERE value1 LIKE '$q%'
UNION SELECT * FROM table2 WHERE value2 LIKE '$q%'
然而,这可能表明你做错了。
答案 1 :(得分:0)
如果你不确定连接是如何工作的,我建议你尝试做一个
SELECT * FROM table1, table2;
并查看将限制(WHERE
)应用于该结果是否有意义。