Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> WHERE z podzapytania dla dwóch kolumn
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Witam ponownie,

Do pewnego zapytania od tabeli Tree Kategorii potrzebne są dwie wartości lewa i prawa dla klauzuli WHERE np:
  1. WHERE KT.lft >= 236 AND KT.rgt <= 315

wiec żeby te wartości uzyskać muszę wykonać wstępne zapytanie np:
  1. SELECT K.lft, K.rgt FROM KatTree K WHERE K.id = 15


Ewentualnie jako dwa podzapytania:
  1. WHERE KT.lft >= (SELECT K.lft FROM KatTree K WHERE K.id = 15)
  2. AND KT.rgt <= (SELECT K.rgt FROM KatTree K WHERE K.id = 15)
Co jest kiepskie ze względu na dodatkowe zapytanie.

Czy da się tak ułożyć to zapytanie by było jedno podzapytanie dajace dwie wartosci do wykorzystania z K.lft i K.rgt
coś jak tutaj: http://dev.mysql.com/doc/refman/5.0/en/row-subqueries.html
  1. SELECT * FROM t1
  2. WHERE (col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10);
ale z warunkami >= i =<

Pozdarwiam

Ten post edytował Mion 31.10.2011, 17:23:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xdev
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 3
Dołączył: 17.09.2011

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


Ale się głowicie (IMG:style_emoticons/default/smile.gif) Przecież to prosty JOIN (IMG:style_emoticons/default/smile.gif) Wiem, że może się wydawać, że to tylko do relacji ale przecież one wcale nie są wymagane.

Kod
SELECT KT.*  FROM KatTree K
INNER JOIN xxxx as KT
ON KT.lft >= K.lft AND KT.rgt <= K.rgt
WHERE K.id = 15


Dane 3 userów:
Kod
SELECT * FROM user as a
INNER JOIN user as b
ON b.id=1015
INNER JOIN user as c
ON c.id=1015
WHERE a.id=1015


Subquery lepiej nie stosować - są koszmarnie wolne i nie działają do końca tak jakby się mogło wydawać (najpierw wykonywana jest zewnętrzna kwerenda).

Ten post edytował xdev 5.11.2011, 10:16:14
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 06:49