![]() |
Hjälp med SQL
Hejsan, jag behöver en snabb och effektiv query, men det står still i huvudet. Jag skriver frågan i pseudo och hoppas att någon kan hjälpa mig:
SELECT * FROM TABLE-A A JOIN TABLE-B B ON A.id = B.id JOIN TABLE-C C ON A.id = C.id WHERE C.category = 1 AND "antal rader i C med category = 1" > 0 LIMIT 1 ...Jag vill alltså hämta en rad från 2 tabeller, A och B (+ ev C), men endast om C innehåller flera rader med samma id och ytterligare ett kriterie. Jag kommer ställa frågan ofta så jag vill ha den så effektiv som möjligt och helst inte ställa flera frågor. |
select *, count(*) cnt from A join B on(A.id=B.id) join C on(B.id=C.id) where C.category=1 group by C.category having cnt>0
Om du sätter alla primary keys rätt så kommer det gå fort. |
Alla tider är GMT +2. Klockan är nu 11:28. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson