我正在使用以下查询从 mysql 数据库中提取信息,虽然我得到了 min(qt.quote_price) 的正确值,但我得到了 st.Supplier_id 的错误值。
它似乎从满足 where 子句的表中返回第一个 st.Supplier_id,但显然我希望它返回带有 min(qt.quote_price) 的行的 st.Supplier_id。
我相信这很简单,但由于某种原因,我无法弄清楚,希望有人能指出我正确的方向。
SELECT ft.fuel_type_id, ft.fuel_name, st.Supplier_id, st.company_name as company_name, st.email, qt.supplier_id, qt.timestamp, qt.fuel_type_id, min( qt.quote_price ) AS best_derv
FROM tbl_quote qt
INNER JOIN `tbl_suppliers` st ON qt.supplier_id = st.Supplier_id
INNER JOIN `tbl_fuel-type` ft ON qt.fuel_type_id = ft.fuel_type_id
WHERE qt.fuel_type_id =3 AND qt.timestamp > date_sub( NOW(), INTERVAL 7 DAY )
我已将查询编辑为可行的内容,但我将不胜感激任何改进它的帮助(如果可能的话)。
SELECT qt.quote_id, ft.fuel_type_id, ft.fuel_name, st.Supplier_id, st.company_name as company_name, st.email, qt.supplier_id, qt.timestamp, qt.fuel_type_id, min( qt.quote_price ) AS best_derv
FROM tbl_quote qt
INNER JOIN `tbl_suppliers` st ON qt.supplier_id = st.Supplier_id
INNER JOIN `tbl_fuel-type` ft ON qt.fuel_type_id = ft.fuel_type_id
WHERE qt.quote_price = (Select min(quote_price) from tbl_quote where fuel_type_id =3 AND timestamp > date_sub( NOW(), INTERVAL 7 DAY ))