2017-10-07 30 views
-1
SELECT 
repeats.id,user_id,deposit_id,repeat_time,made_time,rebeat,status,created_at,updated_at 
FROM repeats 
INNER JOIN users ON users.id = repeats.user_id 

我試圖合併兩個表;用戶和重複,但它是給出以下錯誤。#1052 - 字段列表中的列「狀態」不明確

Error 
SQL query: Documentation 


SELECT repeats.id 
,user_id 
,deposit_id 
,repeat_time 
,made_time 
,rebeat 
,status 
,created_at 
,updated_at 
FROM repeats 
INNER JOIN users 
ON users.id = repeats.id 
LIMIT 0, 25 

MySQL said: Documentation 

#1052 - Column 'status' in field list is ambiguous 
+0

「重複」表,「用戶」表或兩者中的字段「status」?這就是你的查詢要求 –

+1

總是要限定你所有的列,就像你用id做的一樣。另外請注意,沒有ORDER BY的LIMIT是相當無意義的。噢,如果它很重要,重讀不是一個單詞 - 除非城市詞典是您主要的詞彙參考。 – Strawberry

回答

2

無論您repeatsusers表似乎有一個status列。您需要完全限定查詢中的列。例如:

SELECT  repeats.id, 
      user_id, 
      deposit_id, 
      repeat_time, 
      made_time, 
      rebeat, 
      repeats.status, -- Or users.status, depending on what you need 
      created_at, 
      updated_at 
FROM  repeats 
INNER JOIN users ON users.id = repeats.user_id 
+0

感謝它沒有給出錯誤,但沒有合併 –

0

每當查詢中有多個表時,還應該限定列名。另一個好的做法是使用表名稱的縮寫表的別名。

我不知道你的數據是什麼樣子,但查詢會是這樣的:

SELECT r.id, r.user_id, r.deposit_id, r.repeat_time, r.made_time, r.rebeat, 
     u.status, u.created_at, u.updated_at 
FROM repeats r INNER JOIN 
    users u 
    ON u.id = r.user_id; 

這只是一個猜測。您必須正確限定名稱。

相關問題