0

即使存在一对(例如,有一个 f.URL = l.URL 并且它们都不为空),以下结果也会导致左侧(表 l)“标识符”为空。标识符应被视为自动增量,并且“URL”是唯一的

有什么明显的事情我应该做而我不是吗?

 SELECT *
 FROM `l` 
 RIGHT JOIN f ON f.URL = l.URL
 AND f.url <> ''
 AND f.ID = l.id
 AND l.url IS NULL 
 AND l.id IS NULL  
4

2 回答 2

1

这仅仅是因为你有条件AND l.id IS NULL

因此,所有行都将具有l.id = NULL. (或者,用您自己的话来说,“左手标识符为空”。)

于 2013-08-24T03:25:52.693 回答
0

如果有人偶然发现这一点,那是因为我在做 ON 声明:

这可以通过在我打算作为 ON 语句之后添加一个 where 子句来解决 -

SELECT *
 FROM `l` 
 RIGHT JOIN f ON f.URL = l.URL
 WHERE f.url <> ''
 AND f.ID = l.id
 AND l.url IS NULL 
 AND l.id IS NULL  
于 2013-08-24T23:06:59.917 回答