2010-11-28 59 views
0

所以我正在努力與我猜測是一個非常簡單的問題。我搜索了一下,但迄今爲止我找到的解決方案都沒有解決我的問題。模糊的左連接?

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

這自然生產的「不明確的錯誤」中,由於列「arrangement_ID」是存在於兩個tt_arrangement和tt_vaktliste_vakt。想到這很容易解決,我做了以下更改:

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 *時,查詢按預期工作。雖然這不是我要使用查詢的選項。

提前,謝謝你的回覆。

+0

你有反向 - 它應該是[tablename]。[columnname]不是[columnname]。[tablename]。 – 2010-11-28 12:31:18

+0

哈哈,謝謝。猜猜我一直工作太久,開始盲目編碼;) – 2010-11-28 12:35:41

回答

3

前綴不明確的列名和表名:

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,拿督是唯一的列名)

(您也可以使用別名,但仍然需要前綴不明確的列名帶別名)

1

您需要爲表名指定一個別名,如下所示。

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

不知道是頂線正確,因爲我不知道你的表結構,所以不知道哪列來自哪裏。

希望這有助於。