Kom ihåg mig?

Hjälp med SQL

Ämnesverktyg Visningsalternativ
Oläst 2010-10-11, 16:38 #1
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
Standard 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.
hoover är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-12, 07:13 #2
Josef C Josef C är inte uppkopplad
Nykomling
 
Reg.datum: Aug 2010
Inlägg: 7
Josef C Josef C är inte uppkopplad
Nykomling
 
Reg.datum: Aug 2010
Inlägg: 7
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.
Josef C är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:25.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017