Jag har skall göra en sökning i en databas där ett dynamiskt antal kriterier kan sökas på. Programerar i PHP, men den biten skall inte vara några problem.
Sökningen går till så att occupation_id väljs. Jag vill sedan att man skall kunna välja olika option_id, vilka är kopplade till tbl_member_occupation_multiple som i sin tur är kopplat till tbl_member_occupation (eller det kanske är tvärt om...)
För att förklara strukturen lite. Varje member_id är kopplat till ett eller flera yrken. Varje yrkesroll som en medlem har kan ha en eller flera option_id's. Vad jag vill få reda på är member_id i slutändan.
Är det tillräckligt med information för er smarta boys och girls för att lösa min fråga?
SELECT
m.member_id,
m.name
FROM
tbl_member as m,
tbl_member_occupation AS mo,
tbl_member_occ_multi AS mom
WHERE
mo.occupation_id = 2
AND
mo.member_occupation_id = mom.member_occ_multi_id
AND
mo.member_id = m.member_id
AND
(
mom.option_id = 8
OR
mom.option_id = 14
OR
mom.option_id = 1
)
GROUP BY
member_id
Nu ligger problemet i att oavsett vad jag söker på som option_id så kommer medlemmarna upp som har occupation_id = 2. Skulle vilja ha en AND när det gäller option_id, men det funkar ju inte eftersom varje rad enbart kan ha ett alternativ.
lösningen var att joina tbl_member_occ_multi med sig själv antalet gånger som jag har sökkriterier... Här är hur det skulle kunna se ut:
SELECT
m.member_id,
m.name
FROM
tbl_member as m,
tbl_member_occupation AS mo,
tbl_member_occ_multi AS mom0,
tbl_member_occ_multi AS mom1,
tbl_member_occ_multi AS mom2
WHERE
mo.occupation_id = 2
AND
mo.member_occupation_id = mom0.member_occ_multi_id
AND
mo.member_id = m.member_id
AND
(mom0.option_id = 6 )
AND
(mom1.option_id = 1 )
AND
(mom2.option_id = 14 )
GROUP BY
member_id
elvelind: Du har helt rätt, det funkade bra med den koden du föreslog, problemet är att den ger samma fel som min föreslagna kod. Nu returnerar den de records som har någon av dessa siffror i option_id. Jag vill att alla skall matcha!
Kollade lite i manualen, hittade inget av IN ALL eller dyl.
Förslag?
/ Nippe
268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9