使用不同的MySQL时出现问题-重复的行

时间:2018-11-04 22:29:53

标签: mysql sql wordpress

我正在尝试使用SQL选择多个meta_key,但是使用DISTINCT不能防止重复值。

这是我正在使用的SQL查询:

SELECT DISTINCT lat.meta_value as lat, lat.post_id, lng.meta_value as lng
FROM wp_postmeta lat join
     wp_postmeta lng
     on lat.post_id = lng.post_id and
        lat.meta_key = 'billing_cpf' and
        lng.meta_key = 'billing_profissao'
        WHERE lng.meta_value = 'Médico(a)'  
ORDER BY `lat` ASC

它返回经纬度的重复值。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

当然,它返回lat的重复值。 select distinct就是这样工作的。它返回不同的,而不是

如果您希望每lat行,请使用group by。但是您需要聚合函数。例如:

SELECT lat.meta_value as lat,
       GROUP_CONCAT(DISTINCT lat.post_id) as post_ids,
       GROUP_COCNAT(DISTINCT lng.meta_value) as lngs
FROM wp_postmeta lat join
     wp_postmeta lng
     on lat.post_id = lng.post_id and
        lat.meta_key = 'billing_cpf' and
        lng.meta_key = 'billing_profissao'
        WHERE lng.meta_value = 'Médico(a)'  
GROUP by lat.meta_value
ORDER BY `lat` ASC;