所以我在想一个很简单的问题。我进行了一些搜索,但是到目前为止,我发现的所有解决方案都无法解决我的问题。

SELECT arrangement_ID, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)


由于tt_arrangement和tt_vaktliste_vakt中都存在“ arrangement_ID”列,因此自然会产生“歧义错误”。认为此问题易于解决,因此进行了以下更改:

SELECT **arrangement_ID.tt_arrangement**, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)


但是,这产生了错误“列不存在”。那就是我被困住的地方。
不确定是否重要,但是在使用SELECT *时,查询将按预期工作。虽然对于我将要用于查询的内容,这并不是真正的选择。

预先感谢您的任何答复。

最佳答案

在表名的前面加上歧义的列名:

SELECT t_arrangement.arrangement_ID, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)


(假设hva,dato是唯一的列名)

(您也可以使用别名,但仍然需要为别名的歧义列名加上前缀)

关于mysql - 模棱两可的左联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4296721/

10-10 19:15