POSTGRESQL 問題:我有兩張表。表 1 包含商店中所有商品的商品、顏色和尺寸。表 2 是一個定價表,包含商品、尺寸、價格和商品編號。價格由商品和尺寸決定。我怎樣才能得到表 1 上的價格?
表 1- 示例
|item |color|size|
|:--- |:---:|---:|
|shirt|red | M |
|pants|blue | S |
...
表 2- 示例
|item |size|price|item_size_id|
|:----|:--:|:---:|-----------:|
|shirt| S | 2.99| 013443 |
|shirt| M | 3.99| 013444 |
|shirt| L | 4.99| 013445 |
|pants| S | 5.99| 013452 |
...
想要的結果:
|item |color|size|price|
|:--- |:---:|:--:|----:|
|shirt|red | M | 3.99|
|pants|blue | S | 5.99|
...
我努力了:
SELECT item, color, size, price
FROM table1
LEFT JOIN table2
ON table1.item = table2.item AND table1.size = table2.size
但是這會導致價格的所有空值
我已經嘗試過 CASE WHEN 陳述句,雖然這很有效,但它花了很長時間,所以我認為有更好的方法。請指教。謝謝。
**tables 沒有按照預覽問題中顯示的方式進行鍛煉。希望你還能看懂
uj5u.com熱心網友回復:
您的查詢是正確的,只是兩個表中都存在同名的列并且您沒有指定您指的是哪一個。
有關架構和測驗,請參見下面的 dbFiddle 行。
/* query provided in the question as provided */ SELECT item, color, size, price FROM table1 LEFT JOIN table2 ON table1.item = table2.item AND table1.size = table2.size錯誤:列參考“專案”不明確
第 2 行:選擇商品、顏色、尺寸、價格 ^
/* query provided with table identifiers added */ SELECT table1.item, table1.color, table1.size, table2.price FROM table1 LEFT JOIN table2 ON table1.item = table2.item AND table1.size = table2.size專案 | 顏色 | 尺寸 | 價錢 :---- | :---- | :--- | ----: 褲子| 藍色 | 小號 | 5.99 襯衫 | 紅色 | 中號 | 3.99
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446050.html
標籤:PostgreSQL 加入 多重条件 两列
上一篇:從需要ssl和ssl模式的托管postgresql實體轉儲
下一篇:依賴于其他表的每個值的sql查詢
