Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / join по полю с null / 25 сообщений из 25, страница 1 из 1
14.10.2016, 18:41
    #39327330
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
есть 2 таблицы с 3 одинаковыми полями column1,column2,column3, плюс доп поля
в некоторых записях column3 может быть null
нужно вывести все строки из таблицы2,плюс на каждую строку посчитать сумму строк из таблицы1,но с учетом что column3 в таблице2 может быть null
пытался решить в лоб через join с условием по 3 полям +group by по этим полям,не получилось что и понятно изза поля с null
...
Рейтинг: 0 / 0
14.10.2016, 18:57
    #39327337
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Хрень какая-то...
tadeyilodaв некоторых записях column3 может быть nullи к чему их, позволь узнать, нужно присовокупливать?

Не получается объяснять словами - попробуй примером, что ли.
...
Рейтинг: 0 / 0
14.10.2016, 19:05
    #39327340
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
согласен,получается запросом никак не получится?
пока считаю сумму строк в программе, сперва делаю обычную выборку из таблицы2,затем для каждой записи из таблицы2 я проверяю column3=null и в зависимости считаю сумму по 3 полям или по двум
вот решил попробовать сделать 1 запросом
...
Рейтинг: 0 / 0
14.10.2016, 19:15
    #39327345
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
tadeyilodaполучается запросом никак не получится?
Парадоксальный вывод...
Всё, что можно посчитать вручную, можно посчитать и в запросе.

Но как было ни хрена не понять, так и до сих пор один туман...
...
Рейтинг: 0 / 0
14.10.2016, 19:20
    #39327350
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
а что именно не понятно?
...
Рейтинг: 0 / 0
16.10.2016, 08:05
    #39327681
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
tadeyilodaа что именно не понятно?
че те надо не понятно
...
Рейтинг: 0 / 0
16.10.2016, 08:55
    #39327688
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
tadeyiloda,

на нулл вот так не проверяют - column3=null
ну и нелогично схлапывать (group by) по Null полю
может достаточно по column1,column2
...
Рейтинг: 0 / 0
16.10.2016, 09:11
    #39327692
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
полностью согласен,пример привел скорее для самоуспокоения
тогда как сделать? 1 запросом не получится?
...
Рейтинг: 0 / 0
16.10.2016, 12:32
    #39327737
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Не, он всё-таки какой-то альтернативно мыслящий... опять спрашивает "как", не рассказав "что"...
...
Рейтинг: 0 / 0
16.10.2016, 13:31
    #39327757
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
я спросил что рассказать?
я уже привел пример который я хочу перенести в запрос
авторпока считаю сумму строк в программе, сперва делаю обычную выборку из таблицы2,затем для каждой записи из таблицы2 я проверяю column3=null и в зависимости считаю сумму по 3 полям или по двум
вот решил попробовать сделать 1 запросом
...
Рейтинг: 0 / 0
16.10.2016, 16:58
    #39327810
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
tadeyiloda,

да приведите пример по 3 записи с таблиц и что надо получить
...
Рейтинг: 0 / 0
16.10.2016, 19:57
    #39327827
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
пример
таблица 1
column1 column2 column3 1 1 12 2 null 1 1 12 2 null2 2 2
таблица 2
column1 column2 column3 цена 1 1 1 12 2 null 2
в итоге получаем
column1 column2 column3 цена количество 1 1 1 1 22 2 null 2 3
...
Рейтинг: 0 / 0
16.10.2016, 20:41
    #39327836
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Судя по приведённым данным, группировка выполняется по двум полям (column1,column2), а в поле "Количество" тупо кладётся SUM().

Интересно, что надо будет получить, если во вторую таблицу добавится запись (2,2,1,4)...

Но самое главное - на данные явно накладывается дохрена ограничений, причём все они поддерживаются исключительно клиентом. Как итог, скорее всего, хрень в данных, которую учитывать, с одной стороны, затрахаешься, а с другой, "нинада, ведь такого в таблицах быть не должно". Бред, право слово...
...
Рейтинг: 0 / 0
16.10.2016, 20:51
    #39327839
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
да чтож такое неужели так плохо объясняю?

таблица 1
column1 column2 column3 1 1 12 2 null 1 1 22 2 null2 2 2
таблица 2
column1 column2 column3 1 1 1 1 1 22 2 null
в итоге получаем
column1 column2 column3 количество 1 1 1 1 1 1 2 12 2 null 3
...
Рейтинг: 0 / 0
16.10.2016, 20:54
    #39327840
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
почему сразу бред? ид это номера стран,регионов,субрегионов
у некоторых регионов нет подрегионов поэтому нулл
...
Рейтинг: 0 / 0
16.10.2016, 21:11
    #39327846
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
таблица 1
column1 column2 column32 2 null2 2 1

таблица 2
column1 column2 column3 2 2 null 2 2 1 2 2 2
Результат?
...
Рейтинг: 0 / 0
16.10.2016, 21:18
    #39327847
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
column1 column2 column3 количество 2 2 null 2 2 2 1 1 2 2 20
...
Рейтинг: 0 / 0
17.10.2016, 12:05
    #39328090
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
tadeyilodaпочему сразу бред? ид это номера стран,регионов,субрегионов
у некоторых регионов нет подрегионов поэтому нуллчто за таблица1(что это? - приход товара, наличие-номенклатура?) что за таблица2 - цена? т.е. если нет цены то не считаем?
в чем проблема то?
Код: sql
1.
2.
3.
4.
/* такая конструкция работает? */
SELECT t2.col1,t2.col2,t2.col3 
FROM t1 JOIN t2 USING (col1,col2,col3)
 GROUP BY col1,col2,col3

если да то прикручивайте СУМ или КАУНТ и все
...
Рейтинг: 0 / 0
17.10.2016, 13:20
    #39328147
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
таблица 1 это товары по регионам
таблица 2 цены на каждый регион
запрос из примера не работает как надо
...
Рейтинг: 0 / 0
18.10.2016, 04:27
    #39328627
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
откуда указанная цифра?
tadeyilodacolumn1 column2 column3 количество 2 2 null >>2<<< 2 2 1 1 2 2 20
...
Рейтинг: 0 / 0
18.10.2016, 04:54
    #39328630
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Alex_Ustinovtadeyilodaпочему сразу бред? ид это номера стран,регионов,субрегионов
у некоторых регионов нет подрегионов поэтому нуллчто за таблица1(что это? - приход товара, наличие-номенклатура?) что за таблица2 - цена? т.е. если нет цены то не считаем?
в чем проблема то?
Код: sql
1.
2.
3.
4.
/* такая конструкция работает? */
SELECT t2.col1,t2.col2,t2.col3 
FROM t1 JOIN t2 USING (col1,col2,col3)
 GROUP BY col1,col2,col3

если да то прикручивайте СУМ или КАУНТ и всену а если обойти нулл в лоб, что там дальше то?
Код: sql
1.
2.
3.
4.
5.
6.
SELECT   t2.col1,  t2.col2,  t2.col3,  t2.total
FROM t1
  JOIN t2
    ON t1.col1 = t2.col1
    AND t1.col2 = t2.col2
    AND IFNULL(t1.col3, 0) = IFNULL(t2.col3, 0)
...
Рейтинг: 0 / 0
18.10.2016, 05:11
    #39328631
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Alex_Ustinov,


group by забыл

лень пробовать эту скумбрию..
...
Рейтинг: 0 / 0
18.10.2016, 13:35
    #39328942
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
Alex_Ustinovоткуда указанная цифра?
tadeyilodacolumn1 column2 column3 количество 2 2 null >>2<<< 2 2 1 1 2 2 20

потому что 2 записи с полями column1=2, column2=2
...
Рейтинг: 0 / 0
19.10.2016, 07:47
    #39329493
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
ну так бы сразу и описали, вам надо итоговую по кол1,2
можно и одним запросом
...
Рейтинг: 0 / 0
19.10.2016, 14:26
    #39329869
tadeyiloda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
join по полю с null
вот что мне нужно

если column3=null тогда count(*) from table1 where table1.column1=table2.column1 and table1.column2=table2.column2,

если column3!=null тогда count(*) from table1 where table1.column1=table2.column1 and table1.column2=table2.column2 and table1.column3=table2.column3

нужно считать по трем или двум колонкам в зависимости от того column3 нул или не нул
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / join по полю с null / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]