簡體   English   中英

列含糊不清的錯誤

[英]column ambigously defined error

我有這個代碼

select people_id,first_name 
FROM people , PUBAUTHOR_PEOPLE 
WHERE people.people_id = PUBAUTHOR_PEOPLE. people_id 

它說列定義不明確,有人知道為什么以及如何解決這個問題嗎?

您應該在表名之前添加表名,如下所示

select people.people_id,people.first_name 
FROM people , PUBAUTHOR_PEOPLE 
WHERE people.people_id = PUBAUTHOR_PEOPLE. people_id 

我建議您使用以下別名來使代碼更具可讀性

select p.people_id,p.first_name 
FROM people p, PUBAUTHOR_PEOPLE pp
WHERE p.people_id = pp.people_id 

我還建議您使用以下聯接

select p.people_id,p.first_name 
FROM people p
join PUBAUTHOR_PEOPLE pp on p.people_id = pp.people_id

現在它更具可讀性,不是嗎?

之所以抱怨,是因為兩個表都有一個名為“ people_id”的列,因此您必須指定要從哪個表讀取數據(即使由於連接條件而相同),如下所示:

SELECT      people.people_id,
            first_name 

FROM        people, PUBAUTHOR_PEOPLE 

WHERE       people.people_id = PUBAUTHOR_PEOPLE.people_id 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM