Hallöle,
durch LEFT JOIN ermittle ich in einer Zeile sechs Informationen. Davon können 2..5 NULL sein.
Da ich die Zeile mit den meisten Informationen per ORDER BY ... DESC zuerst brauche, habe ich versucht, die Anzahl in einer eigenen Spalte zu ermitteln:
,count(info1,info2,info3,info4,info5,info6)
Das mag SQL aber gar nicht. Wie bekomme ich es hin, dass die meisten Treffer oben stehen in der Liste?
Hier das Original, erstmal bis info3:
SELECT
6 slot_nr
,kon1.aussteller_id chef_id
,1536 aus2_id
,kon1.gruppen_id gruppen_id
,count(kon1.besucher_id,kon2.besucher_id,kon3.besucher_id) anz_grp
,kon1.besucher_id Abes_id
,kon1.prio_1 Aprio_1
,kon1.prio_2 Aprio_2
,anw1.slot_nr Aanw_slot
,anw1.partner_id Aanw_par
,anw1.event_id Aanw_evt
,kon2.besucher_id Bbes_id
,kon3.besucher_id Cbes_id
FROM tm_kontakte as kon1
LEFT JOIN tm_anwesenheit as anw1
ON anw1.adr_id =kon1.besucher_id
AND anw1.slot_nr=6
LEFT JOIN tm_kontakte as kon2
ON kon2.aussteller_id = kon1.aussteller_id
AND kon2.besucher_id != kon1.besucher_id
AND kon2.gruppen_id > 0
AND kon2.gruppen_id = kon1.gruppen_id
LEFT JOIN tm_kontakte as kon3
ON kon3.aussteller_id = kon1.aussteller_id
AND kon3.besucher_id != kon1.besucher_id
AND kon3.besucher_id != kon2.besucher_id
AND kon3.gruppen_id > 0
AND kon3.gruppen_id = kon1.gruppen_id
WHERE kon1.aussteller_id = 1536
AND kon1.slot_nr = 0
ORDER BY chef_id
Lieben Gruß, Kalle