1
Ich hole Daten aus vier verschiedenen Tabellen. Dies ist, wie ich getan habe:Filtern ohne Duplikate in Mysql
select value_split.id,
count(invoice_request.id) as counts,
GROUP_CONCAT(`category`.`category_name`) as `category_name`
from value_split
left join invoice_request
on invoice_request.id = value_split.id
and MONTH(invoice_request.from_date) = '05'
and YEAR(invoice_request.from_date) = '2016'
and invoice_request.status = '1'
left join `category_value` on value_split.id = category_value.id
left join `category` on category_value.category_id = category.category_id
where MONTH(value_split.date) = '05'
and YEAR(value_split.date) = '2016'
group by value_split.id, value_split.date
limit 0, 2147483647
Die erwartete Antwort lautet:
id|counts|category_name
1 | 1 | service, drop
2 | 2 | drop
3 | 1 | service
Aber, was ich bekommen ist:
id|counts|category_name
1 | 5 | service, drop
2 | 4 | drop
3 | 5 | service
Wenn ich Zeile 10 zu entfernen und 11, erhalte ich die korrekte Antwort. Aber wenn ich sie einschließe, bekomme ich die falsche. Aber ich möchte das auch zeigen. Also, was soll ich tun, um die richtige Ausgabe zu bekommen? Was ist daran falsch?
habe ich versucht, es zu benutzen, aber ich habe 1 in der zweiten Spalte für alle IDs. – SSS
Welche Anzahl benötigen Sie? Verwenden Sie den rechten Ausdruck für "DISTINCT". – mnv
Ich habe es an beiden Orten benutzt, also sowohl in Zeile 2 als auch in 3. Aber ich gehe das gleiche Ergebnis. – SSS