Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PgSQL] Wyrażenie warunkowe w zapytaniu
Shavei
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.07.2007
Skąd: Poznań

Ostrzeżenie: (20%)
X----


Czesc,

Chcialbym dodac w zapytaniu warunek dla LEFT JOIN lecz nie bardzo mi to wychodzi. Chciałbym joinować jakas tabele, w zaleznosci od wartosci jakiegos pola.
Skomplikowalem chyba troche, ale pokaze na przykladzie (oczywiscie [niestety] on nie dziala) o co mi chodzi.

  1. SELECT
  2. *
  3. FROM t_table1 AS t1
  4. LEFT JOIN t_table2 AS t2 ON t2.id = t1.id
  5. CASE WHEN t1.id > 300 THEN
  6. LEFT JOIN t_table3 AS t3 ON t3.id = t1.id
  7. ELSE END
  8. ORDER BY t1.id DESC



Jak to powinno poprawnie wygladac?
Dzieki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Jestem na 90% pewien, że taka konstrukcja nie jest dozwolona. A możesz mi wytłumaczyć, dlaczego akurat tak potrzebujesz skonstruować zapytanie?
Ja bym spróbował czegoś takiego:
  1. SELECT
  2. *
  3. FROM table1 AS t1
  4. LEFT JOIN table2 AS t2 ON t2.id = t1.id
  5. LEFT JOIN table3 AS t3 ON t3.id = t1.id AND t1.id > 300;
Go to the top of the page
+Quote Post
Shavei
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.07.2007
Skąd: Poznań

Ostrzeżenie: (20%)
X----


Ja na 100% jestem pewien, że ta konstrukcja jest zabroniona ;-)
Potrzebuję skonstruować takie zapytanie, ponieważ chcę dołączyć tylko tą tabelę w zapytaniu, która jest mi potrzebna.
A jaką tabelę chciałbym dołączyć, to zależy od wartości w jednym z pól tabeli głównej :-)
Go to the top of the page
+Quote Post
wlamywacz
post
Post #4





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


A może:
  1. SELECT
  2. *
  3. FROM t_table1 AS t1
  4. LEFT JOIN t_table2 AS t2 ON t2.id = t1.id
  5. LEFT JOIN t_table3 AS t3 ON (t3.id = t1.id AND t1.id > 300)
  6. ORDER BY t1.id DESC
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 12:08