2012-07-11 46 views
0

改變列id來關聯值我現在有2個表在另一個表

存儲所有的不同的值(名稱)A表可以存儲在其他。

item_slots: 
id | Name 

items_list: 
id | user_id | i_slot | Name 

item_slots有11個條目,而items_list可以有無限的。在我查詢items_list的過程中,它可以根據user_id返回任意數量的項目。

我有必要根據i_slot關聯的ID與item_slots.name更換items_list.i_slot

我嘗試以下操作:

SELECT il.* is.name 
FROM items_list AS il 
JOIN item_slots AS is 
ON is.id = il.i_slot 
WHERE il.user_id = 3 

這將返回以下錯誤:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.name FROM items_list AS il JOIN item_slots AS is ON is.id = il.i_slot WHERE il' at line 1

回答

1

is是MySQL中的關鍵字(如IS NULL等),試試這個(轉義別名)

SELECT il.*, `is`.name 
FROM items_list AS il 
JOIN item_slots AS `is` 
ON `is`.id = il.i_slot 
WHERE il.user_id = 3 
+1

謝謝。那樣做了。 (除了它在第一行中的SELECT i。*'後面需要逗號) – 2012-07-11 17:50:18

+0

好的結果,我已經更新了答案 – quickshiftin 2012-07-11 17:52:30

+1

@quickshiftin,你在錯誤的地方有逗號。 FYI – 2012-07-11 17:53:39

2

is是MySQL中的保留關鍵字。您必須將反引號置於其周圍:

SELECT il.*, `is`.name 
FROM items_list AS il 
JOIN item_slots AS `is` 
ON `is`.id = il.i_slot 
WHERE il.user_id = 3