在SQL查询中加入2个不同的表

时间:2012-01-11 01:30:12

标签: php sql

我正在尝试在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所具有的列的值。

甚至有办法做到这一点?

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)应用于该结果是否有意义。