即使存在一对(例如,有一个 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
这仅仅是因为你有条件AND l.id IS NULL
。
因此,所有行都将具有l.id = NULL
. (或者,用您自己的话来说,“左手标识符为空”。)
如果有人偶然发现这一点,那是因为我在做 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