FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Nykomling
|
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. |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
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. |
||
![]() |
![]() |
Svara |
|
|