Новости Joomla

Joomla 20 лет. Алексей Морозов.

Алексей Морозов больше известен в Joomla-сообществе под ником AlekVolsk. Он многим известен как разработчик

Далее предоставим слово Алексею.

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 817 Просмотров
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
SQL запрос с JOIN LEFT use IN
« : 19.10.2017, 21:16:59 »
Собственно сабж...

Может ли это работать?:
Код
select t1.* MIN(t2.field) as min from t1 left join (t2 ON t2.id IN (t1.id_list))
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #1 : 19.10.2017, 21:25:01 »
Причем проблема именно в поле t1.id_list, т.к. попробовал загнать туда руками (4,7,34) - отработало
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: SQL запрос с JOIN LEFT use IN
« Ответ #2 : 19.10.2017, 21:28:51 »
А почему не
Код
select t1.*, MIN(t2.field) as min from t1 left join t2 ON t2.id = t1.id_list
?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #3 : 19.10.2017, 21:30:30 »
А почему не
Код
select t1.*, MIN(t2.field) as min from t1 left join t2 ON t2.id = t1.id_list
?
в t1.id_list хранится список id как 2,5,9,56,...
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: SQL запрос с JOIN LEFT use IN
« Ответ #4 : 19.10.2017, 21:37:36 »
Причем проблема именно в поле t1.id_list, т.к. попробовал загнать туда руками (4,7,34) - отработало
Ну скорее всего потому что, если руками это массив. если же из текущий таблицы то это стока (прошу не плеваться, пытался объясниться как мог).
По идеи должен помочь субзапрос. Но а вообще чаще всего такие вещи обычно хранят в отельной табличке
Код
id | subid
Это позволяет избежать кучи проблем в будущем

P.S могу ошибаться ибо за всю жизнь такие запросы делать не приходилось.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: SQL запрос с JOIN LEFT use IN
« Ответ #5 : 19.10.2017, 22:23:31 »
Нет, так работать не будет. @Septdir прав, хотя 2,5,9,56 выглядит похоже на параметры IN, она (строка) не воспринимается как таковые.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #6 : 19.10.2017, 22:41:46 »
Всем спасибо! Перестроил архитектуру и убрал этот implode/explode.
Не понимаю что меня дернуло на это? Один ко многим связь.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #7 : 19.10.2017, 22:43:43 »
Такое может понадобится при связях многие ко многим
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: SQL запрос с JOIN LEFT use IN
« Ответ #8 : 19.10.2017, 23:23:14 »
Такое может понадобится при связях многие ко многим
Ну просто в один столбец это не питают. Не удобно потом. Ни выбору нормально сделать ни получать ни join на такую связь ни сделать.
Лучше всего в отдельную таблицу один к одному.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: SQL запрос с JOIN LEFT use IN
« Ответ #9 : 19.10.2017, 23:34:48 »
Понятно, что знание приходит со временем, но лучше постараться понять суть того, что мы делаем. Например, нужно знать, что SQL SELECT делает выборку записей только построчно.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #10 : 20.10.2017, 09:40:38 »
Понятно, что знание приходит со временем, но лучше постараться понять суть того, что мы делаем. Например, нужно знать, что SQL SELECT делает выборку записей только построчно.
по одной строке? и какие ограничения это накладывает?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: SQL запрос с JOIN LEFT use IN
« Ответ #11 : 20.10.2017, 10:32:39 »
по одной строке?
На выходе - массив, но он формируется по одной строчке.
и какие ограничения это накладывает?
Во-первых, может быть, не совсем относится к вашему вопросу, но самое главное ограничение - производительность работы системы. Для этого придумали всякие уникальные значения и индексы.
Во-вторых, понятно, что ваш запрос не работает, но какой результат вы хотели получить, если бы он работал?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: SQL запрос с JOIN LEFT use IN
« Ответ #12 : 20.10.2017, 10:57:08 »
какой результат вы хотели получить, если бы он работал?
На самом деле я здесь привел утрированный запрос. Запрос сложнее. Все из-за чего все пришлось переделывать прежний вариант это понадобились статусы из др. таблицы t2, а именно МИН(статус). Так вот ссылки на объекты хранились в t1 как ячейка с перечислением (1,6,...). Пытался сделать left join и сопоставить t2.id IN t1.ids_list далее group t1.id. Ничего не вышло пришлось в таблицу t2 добавить поле t2.id_t1 и перестроить запрос в части join.
С индексами пока базу не проектировал не сильно нагружены приложения, но возможно было бы неплохо.
Если есть ссылка где хорошо написано про то как начать работать с индексами был бы очень признателен.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SQL запрос в оператором OR в where

Автор platonische

Ответов: 18
Просмотров: 1343
Последний ответ 30.11.2016, 18:26:47
от zomby6888
Поиск на сайте - SQL запрос

Автор john.deff

Ответов: 11
Просмотров: 1092
Последний ответ 08.08.2016, 10:08:29
от john.deff
Sql запрос JOIN и LIMIT

Автор platonische

Ответов: 6
Просмотров: 1234
Последний ответ 06.04.2016, 14:31:09
от zomby6888
SQL запрос

Автор spirit1086

Ответов: 10
Просмотров: 1359
Последний ответ 13.02.2015, 11:22:53
от spirit1086
[Решено] Post запрос в модели компонента

Автор saharin88

Ответов: 11
Просмотров: 2039
Последний ответ 20.10.2014, 18:09:49
от saharin88