php - 我的 MySQL SELECT 查询返回相同行的多个

标签 php mysql mysqli rows

由于某种原因,我只得到了一个可以看到的重复行,但无法真正查明查询中哪里出了问题。

$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
");

最佳答案

在某些情况下,使用GROUP BY 语句比使用DISTINCT 更好。在您的示例中,您应该至少按一个列添加一个组(一些唯一,例如 id)。当您在查询中使用聚合时,最好使用分组依据,而仅使用联接时 - 不同就足够了。

关于php - 我的 MySQL SELECT 查询返回相同行的多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938210/

相关文章:

java - 如何修复 "com.mysql.cj.jdbc.exceptions.CommunicationsException"错误

php - 从 PHP 调用时与从 Mysql Shell 调用时的 Mysqli 查询结果不同

php mysql 如何使用 mysql_insert_id() 能够同时插入2个表?

php - 在 db 中插入目录名称和文件

mysql - 无论条件如何都检索所有详细信息

mysql - Access 表单级联组合框在下拉菜单中不显示任何内容

php - 通过发布列名来搜索常量值的代码不起作用需要一些更正

php - PHP:注意:未定义索引

php - 为什么我在 Symfony 1.2 上用 Doctrine 保存一个 "validator failed"?

php - MYSQL审计程序及触发器