У меня есть таблица "объекты":MySQL группа по с нулевым
id (int)
name (varchar)
group_id (varchar) default null
я сделать некоторые вставки:
insert into objects values(null, 'Cat', null);
insert into objects values(null, 'Dog', null);
insert into objects values(null, 'Mouse', 'AAA');
insert into objects values(null, 'Eagle', 'BBB');
insert into objects values(null, 'Elephant', null);
insert into objects values(null, ' Bull', 'AAA');
Тогда я избранная, как это:
select * from objects
Появляются все строки, которые я вставил. Однако для тех записей, где поле «group_id» не равно null, я просто хочу, чтобы он был выбран. Если я запускаю этот запрос:
select * from objects group by group_id
тогда только одна запись с определенным group_id будет отображаться. Проблема в том, что те записи, которые имеют group_id, установленный в NULL, будут отображаться только один раз. Я хочу, чтобы все записи отображались отдельно от тех, у которых group_id установлен на что-то. В этом случае должен появиться только на почте.
Я пробовал разные вещи, например, используя DISTINCT. Отдельно работает, если вы выбираете только указанное поле. В противном случае он извлекает дубликаты. Я также попытался сгруппировать таким образом:
group by id desc, group_id desc
В этом случае дублирует все еще показывают вверх.
Чем вы. Я боюсь, что я не могу использовать союз, так как приложение довольно сложно, и для объединения потребуется много изменений. Интересно, есть ли другой способ сделать это, не используя союз. – user3726562
Действительно ли это так сложно? На каком языке вы используете? –
Я использую PHP. Приложение ОГРОМНОЕ. – user3726562