出於某種原因,我只能看到一個重複行,但我無法真正查明查詢中哪裏出錯了。我的MySQL SELECT查詢正在返回同一行的倍數
$stmt = $mysqli->query("
SELECT DISTINCT vendors_tbl.email AS email,
(vendor_avails_tbl.standard_pricing - vendor_loc_tbl.offpeak_time_pricing) AS best_margins,
vendor_loc_tbl.location_id AS locationID,
vendor_loc_tbl.loc_img_path AS locImg,
vendor_loc_tbl.offpeak_time_pricing AS offpeak,
vendor_loc_tbl.address1 AS address1,
vendor_loc_tbl.address2 AS address2,
vendor_loc_tbl.zip_code AS zip,
vendor_loc_tbl.geocodes AS geo,
vendor_loc_tbl.has_valet AS valet,
vendor_loc_tbl.has_transport AS transport,
vendor_loc_tbl.has_wheelchair AS wheelchair,
vendor_loc_tbl.has_desk AS desk,
vendor_loc_tbl.has_24hours AS open24hrs,
vendor_loc_tbl.has_covered AS covered,
vendor_loc_tbl.has_security AS security,
(vendor_avails_tbl.available_economy + vendor_avails_tbl.available_standard + vendor_avails_tbl.available_midsize + vendor_avails_tbl.available_truck_suv) AS avail_total,
vendor_avails_tbl.standard_pricing AS standard_pricing, 69 *
DEGREES(ACOS(COS(RADIANS($e_lat))
* COS(RADIANS(SUBSTR(vendor_loc_tbl.geocodes, 1, 10)))
* COS(RADIANS($e_lon) - RADIANS(SUBSTR(vendor_loc_tbl.geocodes, 13)))
+ SIN(RADIANS($e_lat))
* SIN(RADIANS(SUBSTR(vendor_loc_tbl.geocodes, 1, 10))))) AS distance_in_m
FROM vendors_tbl
INNER JOIN vendor_loc_tbl ON vendor_loc_tbl.vendor_id = vendors_tbl.vendor_id
INNER JOIN vendor_avails_tbl ON vendor_avails_tbl.location_id = vendor_loc_tbl.location_id
WHERE vendor_avails_tbl.available_standard > 0
ORDER BY vendor_loc_tbl.override_level DESC, best_margins DESC, distance_in_m ASC
LIMIT 5
");
哎呀,我的眼睛,我再也看不到了......!請格式化您的問題,以便我們可以閱讀它! – Random
請格式化您的代碼。根據我所看到的,您的連接條件可能會給出vendor_tbl – Preuk
的多個vendor_loc_tbl或vendor_avails_tbl,請問您可以添加表格模式和FK定義,以便我們可以修復您的連接? – Preuk