SELECT *
FROM a
WHERE a.re_id = 3443499
AND a.id IN
(
SELECT b.rsp_id FROM b
WHERE b.f_id = 9
GROUP BY b.rsp_id
HAVING FIND_IN_SET(16, GROUP_CONCAT(b.o_id)) > 0
AND FIND_IN_SET(15, GROUP_CONCAT(b.o_id)) > 0
UNION
SELECT b.rsp_id FROM b
WHERE b.f_id = 4
GROUP BY b.rsp_id
HAVING FIND_IN_SET(5, GROUP_CONCAT(b.o_id)) > 0
)
ORDER BY id DESC
Hier ist "f_id" ein Array und seine Werte sind diejenigen im ersten Parameter der Funktion "FIND_IN_SET". Zum BeispielGibt es eine bessere Möglichkeit, diese Abfrage auszuführen?
9=>(
16,
15
),
4=>(
5
)
Beispieldaten für die 2 folumns in Tabelle b, F_ID 2 Spalten und O_ID
f_id o_id
9 15
9 18
9 23
4 5
3 8
Ich meine es ist eine Benutzereingabe als Array von Formular-Checkboxen eingegeben. –
Ja, in Tabelle b –
Der Frage wurde jetzt mehr Text hinzugefügt. –