konto usunięte

Temat: Problem ze zmienną

Witam!
Mam takie zapytanie:

SELECT `p`.`id`, `p`.`name` FROM (`q_products` p)
LEFT JOIN `q_users_products` up ON `p`.`id`=`up`.`product_id`
LEFT JOIN `q_users` u ON `up`.`user_id`=`u`.`id`
LEFT JOIN `q_small_producers` sp
ON `sp`.`users_id`=`up`.`user_id`
AND (p.category IN (SELECT id FROM (SELECT CAST(hierarchy_connect_by_parent_eq_prior_id(id) AS UNSIGNED) id FROM (SELECT @start_with:=94, @id := @start_with,@level := 0) vars, q_products_category WHERE @id IS NOT NULL ) cat WHERE id IS NOT NULL)
OR p.category=sp.products_category_id) AND sp.districts_id=2
WHERE `up`.`id` IS NOT NULL AND `up`.`active` = 1 AND `p`.`admin_active` = 1 AND (sp.id IS NOT NULL)
GROUP BY `p`.`id`

Problem polega na tym, że w miejscu, gdzie jest 94 chciałbym wstawić sp.products_category_id. W tym miejscu jednak tego zrobić nie mogę. Próbowałem z dodatkową zmienną definiowaną w Select lub On, ale zwracało mi nieprawidłowe wyniki.
Czy ktoś jest mi w stanie pomóc? Będę wdzięczny.

konto usunięte

Temat: Problem ze zmienną

Może pójść stored procedure i rozbić zapytanie ? A może PHP query i zmienne wstawić do zapytania plus jakieś zapytanie wcześniejsze do tego sp.products_category_id.
Jarosław O.:
Witam!
Mam takie zapytanie:

SELECT `p`.`id`, `p`.`name` FROM (`q_products` p)
LEFT JOIN `q_users_products` up ON `p`.`id`=`up`.`product_id`
LEFT JOIN `q_users` u ON `up`.`user_id`=`u`.`id`
LEFT JOIN `q_small_producers` sp
ON `sp`.`users_id`=`up`.`user_id`
AND (p.category IN (SELECT id FROM (SELECT CAST(hierarchy_connect_by_parent_eq_prior_id(id) AS UNSIGNED) id FROM (SELECT @start_with:=94, @id := @start_with,@level := 0) vars, q_products_category WHERE @id IS NOT NULL ) cat WHERE id IS NOT NULL)
OR p.category=sp.products_category_id) AND sp.districts_id=2
WHERE `up`.`id` IS NOT NULL AND `up`.`active` = 1 AND `p`.`admin_active` = 1 AND (sp.id IS NOT NULL)
GROUP BY `p`.`id`

Problem polega na tym, że w miejscu, gdzie jest 94 chciałbym wstawić sp.products_category_id. W tym miejscu jednak tego zrobić nie mogę. Próbowałem z dodatkową zmienną definiowaną w Select lub On, ale zwracało mi nieprawidłowe wyniki.
Czy ktoś jest mi w stanie pomóc? Będę wdzięczny.

konto usunięte

Temat: Problem ze zmienną

Dzięki za odpowiedź, ale nie. W przypadku rozbicia, albo wstawiania zmiennych z PHP tworzy mi się w tym miejscu masa zapytań zamiast jednego.
Nie pamiętam dokładnie jak, ale rozwiązałem to stworzeniem procedury w bazie. Temat jest już nieaktualny :)

konto usunięte

Temat: Problem ze zmienną

a kto powiedział że muszi to wszystko robić za jednym zamachem
zobacz coś takiego jak TEMPORATY TABLES i zamiast tworzyć kolejne podzapytania zrób sobie odpowiednie tabelki tymczasowe z odpowiednimi danymi
na końcu dasz select i jazda - odpalasz takiego SQL-a za jednym zamachem

konto usunięte

Temat: Problem ze zmienną

Tam doszło jeszcze trochę innych warunków. Ale tak jak pisałem temat już zamknięty. Dzięki wszystkim :)

Następna dyskusja:

problem z polskimi znakami




Wyślij zaproszenie do