SELECT
m.member_id,
m.name
FROM
tbl_member AS m,
tbl_presentation AS p,
tbl_freetext AS f
WHERE
(p.presentation LIKE "%erfarenhet%"
AND
p.member_id = m.member_id)
OR
(f.freetext LIKE "%erfarenhet%"
AND
f.member_id = m.member_id)
GROUP BY
(m.member_id)
ORDER BY
count(m.member_id) DESC
Felmeddelande: MySQL said: Invalid use of group function
Funkade att köra så här istället, det borde bli samma resultat:
SELECT
m.member_id,
m.name,
count(*) AS orderval
FROM
tbl_member AS m,
tbl_presentation AS p,
tbl_freetext AS f
WHERE
(p.presentation LIKE "%erfarenhet%"
AND
p.member_id = m.member_id)
OR
(f.freetext LIKE "%erfarenhet%"
AND
f.member_id = m.member_id)
GROUP BY
m.member_id
ORDER BY orderval DESC
Om du vill ha de medlemmar som antingen har med erfarent i presentation eller freetext
SELECT m.member_id,
m.name
FROM tbl_member AS m left join
tbl_presentation
on (p.presentation LIKE '%erfarenhet%'
AND p.member_id = m.member_id)
left join tbl_freetext AS f
ON (f.freetext LIKE '%erfarenhet%'
AND f.member_id = m.member_id)
Den fråga (utan group by) du skrev skulle nog returnera lite för mycket poster pga ditt or-villkor.
Om det bara finns högst en post per användare i presentation och freetext så blir count alltid 1 så jag förstår inte vad du vill sortera på egentligen.
:) Jag förstår att du inte förstår ;) Jag förklarade aldrig ;) Det är så att varje member_id kan vara kopplad till X antal presentationsfält och i dessa presentationsfält kan det sökta ordet finnas Y gånger.
Vad jag alltså vill göra är att den medlemmen som har flest förekomster av det sökta ordet hamnar högst upp i listan.
Men du har rätt, min fråga returnerade ett antal poster för mycket, ska testa din fråga!
Tackar igen! :)
// Nippe
255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849