簡體   English   中英

使用內部連接選擇最后一行

[英]SELECT LAST ROW WITH AN INNER JOIN

我有兩個關系表 [category] ​​和 [briefs]。 我想從簡報中選擇最后一行 WHERE Briefs.category_id = category.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";

我收到以下錯誤: "Column 'category_id' in field list is ambiguous"

即使兩個類別具有相同的值。 您還需要指定您引用的表,因為兩者都有一個具有該名稱的列

也使用顯式JOIN sintaxis,Aaron Bertrand 寫了一篇很好的文章踢壞習慣:使用舊式 JOIN關於它。

 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"

兩個表都有一個category_id ,這是不明確的。 使用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

您應該明確添加表名以避免歧義

   "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";

暫無
暫無

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

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