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