查询不给出空记录

时间:2012-05-18 12:26:14

标签: php mysql wordpress

我有这个非常简单的查询。我无法弄清楚为什么我的查询没有返回空记录。

SELECT table1.name, table2.name 
FROM table 
LEFT OUTER JOIN table2 
ON table1.id = table2.id 
WHERE table1.someid='2' 
AND table2.someid=2 
ORDER BY table1.order

我也尝试过使用LEFT JOIN,JOIN,INNER JOIN,FULL OUTER JOIN会出错。

这个简单的查询返回所有必需的值。

SELECT table1.name 
FROM table 
WHERE table1.someid='2' 
ORDER BY table1.order

3 个答案:

答案 0 :(得分:1)

无论你将什么放在where子句中,都会强制结果集从受影响的表中返回行。

在你的情况下,你要求table2.someid = 2,对于mysql意味着table2必须返回一行,有或没有左连接。

解决方案:在左连接中使用此过滤器而不是where子句

答案 1 :(得分:1)

您需要找出您要搜索“2”的表格。使用您的两个子句,您基本上将其转换为INNER JOIN查询。您需要搜索一个表或另一个表。

有意义吗?


SELECT
    table1.name,
    table2.name
FROM
    table
LEFT JOIN
    table2
    ON table1.id = table2.id
WHERE
    table1.someid = '2'

-- This clause is basically turning this query into an inner join.
-- AND
--     table2.someid = 2

ORDER BY
    table1.order

答案 2 :(得分:1)

你的语法错了......

检查这个小提琴:http://sqlfiddle.com/#!2/c368d/1

我已经为你写了这个,也许有帮助。

SELECT table1.name, table2.cute 
FROM table1 INNER JOIN table2 ON table1.id_table1 = table2.id_table1
ORDER BY table1.name