2014-02-26 25 views
0

嗨我想讓這個SQL查詢工作,但我不斷收到此錯誤,只是想知道如果有人可以指出我什麼我做錯了?列'media_id'在字段列表中是不明確的

我的SQL查詢

SELECT title,blurb,media_id 
FROM media_career_crossref 
INNER JOIN media 
ON media.media_id = media_career_crossref.media_id 

我有一個媒體表,也是一個media_career_crossref表。 media_id在媒體表中media_career_crossref ref中的media_id列鏈接到此表中,因此內部聯接

您能解釋爲什麼它會這樣做嗎?以及如何防止它再次發生。

回答

1

嘗試用別名:

SELECT title,blurb,m.media_id 
FROM media_career_crossref mcc 
INNER JOIN media m 
ON m.media_id = mcc.media_id 
5

這兩個表(media和media_career_crossref)都有一個名爲media_id的列。在SELECT語句中,您必須指定要從哪個表中獲取值。例如。

SELECT title,blurb, media_career_crossref.media_id 
FROM media_career_crossref 
INNER JOIN media 
ON media.media_id = media_career_crossref.media_id 
+0

的media_id在media_id表中的一個在media_career_crossref是彪從其他鏈接表格如此,這將工作或是別的東西。 – WhySoSerious

+0

@ user3266354我不確定我瞭解您的評論。即使某個表的media_id列通過外鍵鏈接到其他表,SQL在解釋查詢時也不會假定任何內容。例如,在一些複雜的模式中,您可能會發現需要在查詢中引用不同的值。因此,無論何時連接出現相同列名的表,始終指定該列應來自哪個表。在你的查詢中,似乎任何一個表都沒有問題,因爲你正在加入相同的media_id值。 – faintsignal

1

嘗試爲列添加前綴。 引擎必須要得到它什麼表知道

SELECT title,blurb,media.media_id 
FROM media_career_crossref 
INNER JOIN media 
ON media.media_id = media_career_crossref.media_id 
相關問題