2013-09-28 21 views
10

我試圖獲取離開此評論的用戶的用戶信息。字段列表中的'user_id'字段不明確

用下面的代碼:

SELECT username, image, user_id FROM table_users AS us 
JOIN table_reviews AS re 
ON re.user_id = us.user_id 
WHERE us.user_id = 1 AND 
re.review_id= 1 

我得到的錯誤:

Column 'user_id' in field list is ambiguous

這是什麼意思?

回答

20

這意味着查詢中的兩個表都有列user_id

您需要指定要在SELECT語句得到這樣 SELECT username, image, re.user_id

5

column user_id同時在table_reviews,table_users表中。

您還需要指定具有表別名的列。

SELECT username, image, us.user_id FROM table_users AS us 
JOIN table_reviews AS re 
ON re.user_id = us.user_id 
WHERE us.user_id = 1 AND 
re.review_id= 1 
3

其中之一,它意味着列user_id是兩個表,即在,在table_reviews, table_users

嘗試這樣的:

SELECT username, image, us.user_id //or re.user_id 
FROM table_users AS us 
JOIN table_reviews AS re 
ON re.user_id = us.user_id 
WHERE us.user_id = 1 AND 
re.review_id= 1 
0

不僅在where子句(WHERE us.user_id = 1)中檢查了選定的值(SELECT用戶名,圖像,user_id),所有連接的列都在where子句中檢查,所以在您的示例中,您具有user_id colum n在兩個連接表中。如果你有這樣的查詢之一:

SELECT table_reviews.id FROM table_users AS us 
JOIN table_reviews AS re 
ON re.user_id = us.user_id 
WHERE id 

ID將是明確的,因爲從table_reviews和table_reviews ID-S將在雖然只從table_reviews ID選擇條款進行審查。

相關問題