2017-01-31 3 views
-3

私は[カテゴリ]と[ブリーフ]の2つのリレーショナルテーブルを持っています。 私はブリーフから最後の行を選択したいWHERE briefs.category_id = category.category_id; "Column 'category_id' in field list is ambiguous"内側の結合で最後の行を選択

+0

は、xは、TABLE1の列であれば、あなたのselect句クエリでタイトルにCAPSを失っ – RohitS

+0

心をtable1.x配置する必要があり、テーブルname..likeでselect文の選択リストを修飾??これは「叫ぶ」と呼ばれ、誰も叫ぶのが好きではないですか?私はそうは思わなかった。 –

+0

は常に 'table_name'.column_name'という形式を' alias'として使用しようとします。 –

答えて

0

あなたはexplicitally回避の曖昧

"SELECT briefs.brief_file_num, briefs.category_id 
    FROM briefs,category 
    WHERE briefs.category_id = category.category_id ORDER BY briefs.brief_file_num 
    DESC LIMIT 1"; 
0

両方のテーブルがcategory_idを持って、あいまいです:

[Category] 
category_id 
category_name 

[briefs] 
brief_id 
category_id 
brief_file_num 
brief_date 



"SELECT brief_file_num,category_id FROM briefs,category 
WHERE briefs.category_id = category.category_id ORDER BY briefs.brief_file_num 
DESC LIMIT 1"; 

私は、次のエラーが発生します。代わりにcategory.category_idを使用してください!両方のカテゴリが同じ値を持っている場合でも

SELECT brief_file_num,category.category_id FROM briefs,category 
WHERE briefs.category_id = category.category_id ORDER BY briefs.brief_file_num 
DESC LIMIT 1 
1

のためのテーブル名を追加する必要があります。どちらも同じ名前の列があるため、参照するテーブルを指定する必要があります

またexplict JOIN sintaxisを使用して、Aaron Bertrandは素敵な記事Bad habits to kick : using old-style JOINsを書きました。

SELECT briefs.brief_file_num, 
     briefs.category_id  
FROM briefs 
INNER JOIN category 
    ON briefs.category_id = category.category_id 
ORDER BY briefs.brief_file_num 
DESC LIMIT 1" 
関連する問題