如果第二个表中没有匹配,PHP mySQL将获取数据

时间:2012-06-29 07:04:31

标签: php mysql

以下代码应该返回与另一个表中的参数匹配或者根本不匹配ID的结果。

这是我的尝试,我不明白为什么它不起作用。它返回的结果数量是很多倍。

SELECT *
  FROM table2, table1
  WHERE table1.ID = table2.name 
        AND table1.value = 1 
        OR table1.ID != table2.name

如何解决这个问题

2 个答案:

答案 0 :(得分:0)

看起来你需要一些括号

FROM table2, table1 WHERE (table1.ID = table2.name AND table1.value = 1) OR table1.ID != table2.name

FROM table2, table1 WHERE table1.ID = table2.name AND (table1.value = 1 OR table1.ID != table2.name)

答案 1 :(得分:0)

你可以做两件事:

  • 左外连接(或右)
  • 或完整的外部联接

请点击此处查看对它们的解释:http://www.w3resource.com/sql/joins/perform-a-full-outer-join.php

SELECT *
  FROM table2, table1
  WHERE table1.ID = table2.name(+) 
        AND table1.value = 1 

一个例子,在那里,没有经过测试,但我认为它会起作用