'SELECT * FROM (SELECT * FROM t1
RIGHT OUTER JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL)
LIMIT ' . $number;
此SQL行不会给出一行,我不知道原因。 t1满了行,而t2是空表。如何在MySQL中进行正确的外连接?
'SELECT * FROM (SELECT * FROM t1
RIGHT OUTER JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL)
LIMIT ' . $number;
此SQL行不会给出一行,我不知道原因。 t1满了行,而t2是空表。如何在MySQL中进行正确的外连接?
既然你需要做一个LEFT OUTER JOIN
检索排在t1
您还需要避免重复的列名在内部结果你让外部选择之前,如SELECT t1.*
你也可能需要给一个别名派生表内选择,例如,t3
...
SELECT t3.* FROM (
SELECT t1.* FROM t1
LEFT OUTER JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL)
AS t3;
t3会是什么? – Karmen 2015-04-01 08:44:01
t3是给出内部选择结果的任意表别名,它随后用于通过外部选择引用中间结果。 – 2015-04-01 08:45:45
因为你正在做的'在该表中没有数据右外join'。如果你想获得table1中的所有行,则执行'Left outer Join'。 – 2015-04-01 08:11:17
我必须离开吗?随着离开它也不能正常工作 – Karmen 2015-04-01 08:12:26