2014-12-13 61 views
0

表名 - 城市加入SQL查詢出欄ambigios錯誤

-city_id,CITY_NAME

- 狀態

-state_id,STATE_NAME

表名 - 類

列名 - CATEGORY_ID,CATEGORY_NAME

表名 - 新聞

列名 - CAT_ID,STATE_ID,city_id,標題,故事,作者等。

我需要選擇城市,州和類別表中的所有列,以便在新聞表中插入標識....

爲我在字段列表創建SQL查詢,並參加所有上述三個表,但是這顯示錯誤..plz幫我...

列「STATE_ID」不明確

列' city_id」在字段列表是不明確的

列 '在字段列表CATEGORY_ID' 不明確

我需要從城市,州和類別表

SELECT city_name,city_id,state_id,category_id,state_name,category_name,headline,author,story,source,photo,date from news left join 
city on news.city_id=city.city_id left join state on news.state_id=state.state_id left join category on news.cat_id=category.category_id; 

回答

1

返回所有列,您需要指定的列來自表。 city_idselect列表中不明確。我認爲這是正確的別名:

SELECT c.city_name, c.city_id, s.state_id, ca.category_id, s.state_name, ca.category_name, 
     n.headline, n.author, n.story, n.source, n.photo, n.date 
from news n left join 
    city c 
    on n.city_id= c.city_id left join 
    state s 
    on n.state_id = s.state_id left join 
    category ca 
    on n.cat_id = ca.category_id; 

請注意,我引入了表別名。這些幫助使查詢更容易編寫和閱讀。

+0

'字段列表'中的未知列'c.city_name',然後也是'on子句'中的未知列'c.city_id',對於類別和狀態以及所有 – 2014-12-13 12:32:23

0

同樣的原因是,state_id和state_id都在state和news表中(對City_id和City表中的city_id一樣)以及很少的名字,SQL引擎會混淆使用哪一個。因此,我建議你在選擇字段中使用表別名或表名作爲前綴。