亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取相同產品id的6張表的最低價格

獲取相同產品id的6張表的最低價格

PHP
DIEA 2023-07-01 13:01:16
這是表的結構:Table1product_code - product_price100001 - 100Table2product_code - product_price100001 - 200Table3product_code - product_price100001 - 300Table4product_code - product_price100001 - 400Table5product_code - product_price100001 - 500Table6product_code - product_price100001 - 600這個查詢顯然沒問題$price = DB::queryFirstRow("select * from Table1, Table2, Table3, Table4, Table5, Table6where Table1.product_code = Table2.product_code AND Table1.product_code = 100001");根據數據庫內的順序最后一個表的價格echo $price['product_price']; // 600 the price of the last table according to the order within the db我嘗試按最低價格訂購以獲得 100 個結果$price = DB::queryFirstRow("select * from Table1, Table2, Table3, Table4, Table5, Table6where Table1.product_code = Table2.product_code AND Table1.product_code = 100001 ORDER BY product_price");我收到這個錯誤// ERROR: Column 'product_price' in order clause is ambiguous任何如何解決它的想法,非常感謝您的幫助!
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

首先,當你使用SELECT *mysql時,會加載from和join中所有表的所有字段。MySQL表中的同名字段會互相覆蓋,那么mysql將只返回最后一個表的字段(即您查詢中的Table6)。如果您執行該查詢:


SELECT * FROM `Table1` WHERE `product_code` = 100001

UNION SELECT * FROM `Table2` WHERE `product_code` = 100001

UNION SELECT * FROM `Table3` WHERE `product_code` = 100001

UNION SELECT * FROM `Table4` WHERE `product_code` = 100001

UNION SELECT * FROM `Table5` WHERE `product_code` = 100001

UNION SELECT * FROM `Table5` WHERE `product_code` = 100001

Mysql 將返回(不完全按照該順序):


product_code - product_price

100001 - 100

100001 - 200

100001 - 300

100001 - 400

100001 - 500

100001 - 600

如果需要,您可以添加ORDER BY product_price ASC LIMIT 1;或。DESC


但僅當您正在學習時才這樣做,在實際應用程序中,不建議在不同表的字段中使用相同的名稱。


查看完整回答
反對 回復 2023-07-01
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

我認為你想使用 UNION 語句來獲取所有價格,然后你可以排序并將第一個結果作為最低價格:


SELECT `product_price` FROM `Table1` WHERE `product_code` = 100001

UNION SELECT `product_price` FROM `Table2` WHERE `product_code` = 100001

UNION SELECT `product_price` FROM `Table3` WHERE `product_code` = 100001

UNION SELECT `product_price` FROM `Table4` WHERE `product_code` = 100001

UNION SELECT `product_price` FROM `Table5` WHERE `product_code` = 100001

UNION SELECT `product_price` FROM `Table5` WHERE `product_code` = 100001

ORDER BY 1 ASC LIMIT 1;


查看完整回答
反對 回復 2023-07-01
  • 2 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號