看板 Database 關於我們 聯絡資訊
資料庫名稱:MySQL 資料庫版本:5.0.22 內容/問題描述: 各位好. 我有兩個資料表 dessert did 品名 上架日期 -------------------------------- 1 巧克力餅乾 2015-10-07 2 奶油餅乾 2015-10-01 3 蘇打餅乾 2015-10-04 price oid did 包裝 售價 價格類型 價格顯示 ------------------------------------------------------ 1 1 包 40 member 0 2 1 盒 70 member 0 3 1 箱 900 special 1 8 1 箱 500 dealer 0 4 2 盒 90 member 0 5 2 條 30 member 1 9 2 盒 80 dealer 0 10 2 條 20 dealer 0 6 3 盒 120 member 1 7 3 箱 800 member 0 想要得到的輸出 oid did 包裝 售價 價格類型 品名 上架日期 --------------------------------------------------------------- 3 1 箱 900 special 巧克力餅乾 2015-10-07 5 2 條 30 member 奶油餅乾 2015-10-01 6 3 盒 120 member 蘇打餅乾 2015-10-04 找出每個商品的名稱與價格, 若有特價(價格類型為special)就輸出特價金額, 若無特價則輸出該商品最低價格 我目前是依賴 price.價格顯示 欄位來得到上方的輸出 SELECT oid, sid, 包裝, 售價, 價格類型, 品名, 上架日期 FROM `dessert`, `price` WHERE price.價格類型 in ('member', 'special') and price.價格顯示='1' and price.did = dessert.did 若我取消 price.價格顯示 欄位, 要如何下SQL才能得到一樣的輸出呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.10.1 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1444295275.A.734.html
chippclass: 題目怪怪的,妳的奶油餅乾有特價品 oid=11 一箱300 10/08 17:42
chippclass: 為什麼最後卻選了一條30的? 10/08 17:42
※ 編輯: kevin13 (220.137.152.124), 10/08/2015 20:48:57
kevin13: 謝謝指正 因為我目前是用價格顯示欄位來判斷價格是否顯示 10/08 20:54
kevin13: 但您提出的問題也是我想發問的主因.有時因為價格顯示欄位 10/08 20:57
kevin13: 的數值有錯誤,讓價格該顯示卻沒有顯示. 這就是我想刪除 10/08 21:00
kevin13: 顯示欄位的原因. 10/08 21:01
chippclass: http://i.imgur.com/q1QaFRg.png 這樣? 10/08 21:16
kevin13: 感謝您的回答,問題已解決. 透過您的SQL也讓我知道要如何 10/09 19:23
kevin13: 在取得最低價格時也可正確帶出oid. 10/09 19:25
kevin13: select oid, MIN(售價) from price group by sid做不到 10/09 19:28
kevin13: 一定要先讓資料排列在第一位後再做 group by 才可以 10/09 19:29