Sqlite

sql在加入時產生重複的列ID?

  • September 25, 2020

有沒有辦法只顯示一個用於連接其他表的 id 列?

此查詢生成兩個 id 列,用於作為主鍵和外鍵相互連接。我只希望它重複 id 列一次。

SELECT * 
FROM products 
JOIN productimg ON products.id = productimg.id 
WHERE products.id IN (1, 2, 3)

查詢結果:

id    name     cid  stk prc    id       url
1  product1    1   10  3000    1   /static/images/dresses/td1.jpg
2  product2    2   10  2500    2   /static/images/dresses/td2.jpg
3  product3    2   4   4000    3   /static/images/dresses/td3.jpg

有沒有辦法只顯示一個用於連接其他表的 id 列?

是的。

明確說明要在查詢中檢索的列。

這允許您保留對檢索的欄位數量、檢索這些欄位的順序**以及您希望/需要在檢索過程中執行的任何“重命名”(別名)的控制。

SELECT 
 p.id 
, p.name 
, p.cid 
, p.stk 
, p.prc
, i.url
FROM products p 
JOIN productimg i USING (id)
WHERE p.id IN (1, 2, 3) 
ORDER BY p.id ; 

選擇 * …

切勿在生產程式碼中使用“Select *”。

如果有人

$$ else $$如果要通過添加 20 個 blob 欄位來擴展您的整潔、小巧、三列的表,您的應用程序性能將會下降,您的程式碼絕對沒有理由檢索所有這些“怪物”列,因為您的程式碼沒有使用它們!

引用自:https://dba.stackexchange.com/questions/276065