![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 25.04.2003 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
do tej pory zajmowałem się prostymi zapytaniami, ale aktualny projekt z uwagi na strukturę drzewa (drzewo IP) wymusił zgłębienie tajników składni SQL. Analizując dokumentację MySQL'a stworzyłem takie oto zapytanie:
zwraca ono w jednym wierszu poddzielane przecinkiem wszystkie id kategorii, które są głebiej niż zadeklarowana w zapytaniu (o id 4) W odpowiedzi dostaję to czego się spodziewam: "20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 4" Teraz drugie zapytanie, które pobiera wszystkie produkty przypisane do tych kategorii
W rezultacie dostaję rekordy z nazwami produktów. Niestety problem zaczyna się z chwilą połaczenia tych dwóch zapytań:
Dostaję 0 rekordów. Dlaczego? Nie mogę znaleźć przyczyny tego stanu rzeczy. Według mnie powinienem dostać identyczną odpowiedź. Oczywiście mogę wysłać te zapytania oddzielnie i obrabiać wszystko w PHP, ale wolałbym jednym zapytaniem załatwić "konwersję" danych po stronie serwera mysql. Jakieś sugestie? Będę wdzięczny. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
podzapytanie uzywane do IN nie moze zwracac tekstu skladającego sie z id oddzielonych przecinkiem. Zapytanie to musi zwrocic po kolei wszystkie te ID jako nowe rekordy. Wowczas dopiero będzie ci to dzialac z IN.
To ze ty do IN bez podzapytania dajesz 1,2,3,4.... to zupelnie inna bajka |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 12:07 |