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

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

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

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

да приведите пример по 3 записи с таблиц и что надо получить
...
Рейтинг: 0 / 0
join по полю с null
    #39327827
tadeyiloda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример
таблица 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
join по полю с null
    #39327836
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по приведённым данным, группировка выполняется по двум полям (column1,column2), а в поле "Количество" тупо кладётся SUM().

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

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

таблица 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
join по полю с null
    #39327840
tadeyiloda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему сразу бред? ид это номера стран,регионов,субрегионов
у некоторых регионов нет подрегионов поэтому нулл
...
Рейтинг: 0 / 0
join по полю с null
    #39327846
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица 1
column1 column2 column32 2 null2 2 1

таблица 2
column1 column2 column3 2 2 null 2 2 1 2 2 2
Результат?
...
Рейтинг: 0 / 0
join по полю с null
    #39327847
tadeyiloda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
column1 column2 column3 количество 2 2 null 2 2 2 1 1 2 2 20
...
Рейтинг: 0 / 0
join по полю с null
    #39328090
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
join по полю с null
    #39328147
tadeyiloda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица 1 это товары по регионам
таблица 2 цены на каждый регион
запрос из примера не работает как надо
...
Рейтинг: 0 / 0
join по полю с null
    #39328627
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откуда указанная цифра?
tadeyilodacolumn1 column2 column3 количество 2 2 null >>2<<< 2 2 1 1 2 2 20
...
Рейтинг: 0 / 0
join по полю с null
    #39328630
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
join по полю с null
    #39328631
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,


group by забыл

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

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

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


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