0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
1 | ||||||
Несколько LEFT JOIN для одной и той же таблицы08.11.2018, 19:02. Показов 3359. Ответов 30
Как правильно сделать 2 запроса LEFT JOIN в одну и ту же таблицу
Есть такой код
Понимаю что нужно Aliases но не могу впихнуть и край. Кто в теме, подсобите новичку.
0
|
08.11.2018, 19:02 | |
Ответы с готовыми решениями:
30
LEFT JOIN Запров в 3 таблицы одновременно LEFT JOIN LEFT JOIN LEFT JOIN (?) |
1261 / 959 / 225
Регистрация: 01.10.2018
Сообщений: 3,713
|
|
08.11.2018, 21:23 | 2 |
Где отдельно имена таблиц упоминаете, там и добавляете алиасы. Поищите примеры по комбинации ключей "Adjacency List" (список смежности, список смежных вершин) и "LEFT JOIN".
Добавлено через 4 минуты Условие в запросе должно быть одно.
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
||||||
08.11.2018, 23:21 | 3 | |||||
можете перед ORDER BY написать:
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
09.11.2018, 12:03 [ТС] | 4 | |||||
Для полудух
можете перед ORDER BY написать:
Чего то я не понял как оно будет брать данные с таблицы oc_product_option_value столбика quantity согласно согласно значение столбика option_value_id. Добавлено через 51 минуту Чего-то не клеится. Если вам не сложно напишите запрос для парочки LEFT JOIN
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
09.11.2018, 12:18 [ТС] | 5 | |||||
Вот так выводит но результат не разбивает на столбики
желательно с примером.
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
09.11.2018, 12:49 [ТС] | 6 | |||||
Или немного короче но все равно не разбивает результат по столбцам
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
|
09.11.2018, 19:32 | 7 |
вам же сказали, что WHERE ставится НЕ в джойны
вы хотите в результате видеть именно 31,32,33, вот он их и покажет в моём примере если хотите заджойнить только 31,32,33, а другие НЕ джойнить, то нет, так неэффективно Добавлено через 5 минут никак, у вас option_value_id фигурирует где-то во WHERE, которого там вообще быть не должно если хотите только его, то во WHERE перед ORDER BY
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|||||||||||
12.11.2018, 11:38 [ТС] | 8 | ||||||||||
Чего-то я совсем путаюсь.
Вот ваш вариант
Из за вашего
А мне нужно чтобы выводило их в рядок. И не id товара 48, 46, 47, 49, 50. а другое. Попробую объяснить есть товар id 1 (oc_product.product_id) так же у его есть модель, цена и скидка (oc_product.model,oc_product.price,oc_product_special.price) и самое тут геморное это у товара есть 5 опцый (oc_product_option_value.quantity) их id 48, 46, 47, 49, 50 они записаны в oc_product_option_value.option_value_id Хочу вывести так |oc_product.product_id | oc_product.model | oc_product.price | oc_product_special.price | oc_product_option_value.quantity у которого oc_product_option_value.option_value_id 48 | oc_product_option_value.quantity у которого oc_product_option_value.option_value_id 46 | oc_product_option_value.quantity у которого oc_product_option_value.option_value_id 47 | oc_product_option_value.quantity у которого oc_product_option_value.option_value_id 49 | oc_product_option_value.quantity у которого oc_product_option_value.option_value_id 50 | чтоб выглядело как на 2 скриншоте
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
|
12.11.2018, 12:30 | 9 |
у вас на скрине нет никаких 46,47,48,49,50
зачем вы их вообще указываете? там и так заджойнятся те, которые есть
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|
12.11.2018, 17:50 [ТС] | 10 |
46,47,48,49,50 это и есть id тех самых XS,S,M,L,XL
Даю скрин с базы сори я там id товара не правильно обвел, нужно немного левее
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|
12.11.2018, 17:53 [ТС] | 11 |
Вот тут видно их имина
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
||||||
12.11.2018, 19:28 | 12 | |||||
когда указывают опции конкретные (46,47,48,49) это означает, что нужно оставить товары только с этими опциями
так ведь? где таблица связей между опциями и товарами, в которой ID опции привязывается к ID товара? можете написать так:
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
13.11.2018, 11:28 [ТС] | 13 | |||||
Нет я хочу вывести все.
Мне нужно видеть весь товар что есть на сайте в виде таблицы в читаемом виде со всеми ценами скидками 2 и 3 скидками и разными опциями их но чтоб каждый товар быть только в 1 строке а уже по столбикам все данные с его. Добавлено через 4 минуты
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
|
13.11.2018, 15:06 | 14 |
какие "все"?! на скрине у вас показаны исключительно 46-50
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|
13.11.2018, 15:10 [ТС] | 15 |
ну у каждого товара есть опции (обязательно к заполнению) 48, 46, 47, 49, 50
но там числа от 0 и выше а мне нужно вывести все данные с этих опций Добавлено через 57 секунд что насчет ошибки Выдает ошибку Error: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'product_id' in IN/ALL/ANY subquery is ambiguous Я что то не туда вставил?
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
|
13.11.2018, 15:11 | 16 |
гуглите
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
||||||
13.11.2018, 15:18 [ТС] | 17 | |||||
Поправил product_id на oc_product.product_id
0
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
|
|
13.11.2018, 15:29 | 18 |
Сообщение было отмечено Kifir4ik как решение
Решение
1
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|
13.11.2018, 15:41 [ТС] | 19 |
о что то ближе спс, пробую написать.
0
|
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 40
|
|
14.11.2018, 12:16 [ТС] | 20 |
Сорнян, принцем вроде понял но вывести не могу.
Тебя не затруднить написать, возможно так вкурю быстрее.
0
|
14.11.2018, 12:16 | |
14.11.2018, 12:16 | |
Помогаю со студенческими работами здесь
20
Join left LEFT JOIN Условие в ON Left Join если в одной из таблиц несколько значений в ячейки Два left join к одной таблице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |