我正在尝试使用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
它返回经纬度的重复值。
有人可以帮我吗?
答案 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;