powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Простой запрос
25 сообщений из 30, страница 1 из 2
Простой запрос
    #39546539
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, туплю третий день, есть таблица LS примерно такая:
FIOBOOKМашаГусиСашаЛебедиПашаМирМашаЛебедиСашаГусиПашаГуси
Нужно все ФИО и Гуси и Лебеди
простой запрос where выдает всех гусей, лебедей, а как чтобы только в паре?
...
Рейтинг: 0 / 0
Простой запрос
    #39546585
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT fio
FROM ls
WHERE book in ('Гуси', 'Лебеди')
GROUP BY fio
HAVING COUNT(DISTINCT book) = 2



Код: sql
1.
2.
3.
4.
5.
SELECT t1.fio
FROM ls t1, ls t2
WHERE t1.fio=t2.fio
  AND t1.book = 'Гуси'
  AND t2.book = 'Лебеди'
...
Рейтинг: 0 / 0
Простой запрос
    #39547158
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Круто!!!
Вот только эти два запроса выдают разное количество строк :(
...
Рейтинг: 0 / 0
Простой запрос
    #39547166
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый запрос группирует, второй нет. Добавьте во второй запрос группировку по t1.fio.
...
Рейтинг: 0 / 0
Простой запрос
    #39547190
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
странно разница в 5 строк, просто у меня 35000 строк, по 1 варианту с группировкой 12317, по 2 варианту после группировки 12312
...
Рейтинг: 0 / 0
Простой запрос
    #39547226
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-danger-,
значит пора заняться верификацией данных
...
Рейтинг: 0 / 0
Простой запрос
    #39549356
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paver,

спасибо, нашлись эти три строчки, теперь все сошлось
...
Рейтинг: 0 / 0
Простой запрос
    #39549358
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Спасибо, все получилось.
...
Рейтинг: 0 / 0
Простой запрос
    #39549362
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда задавала вопрос не учла еще что все ФИО и Гуси и Лебеди, но если при этом у Гусей value 2, то это фио в выборку не попадает.
FIOBOOKValueМашаГуси1МашаГуси2СашаЛебеди1ПашаМир1МашаЛебеди1СашаГуси1ПашаГуси1ТаняГуси1ТаняГуси2ТаняЛебеди1
Я могу продолжить в этой теме или лучше новую создавать?
...
Рейтинг: 0 / 0
Простой запрос
    #39549381
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
WHERE value<>2
...
Рейтинг: 0 / 0
Простой запрос
    #39549397
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183, это то понятно, но тогда Маша, Гуси,1 и Таня, Гуси,1 попадет в список, а их имена вообще в этом случае должны быть исключены
...
Рейтинг: 0 / 0
Простой запрос
    #39549410
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда
Код: sql
1.
NOT IN (SELECT .. WHERE value=2)

либо
Код: sql
1.
HAVING SUM(value=2)=0
...
Рейтинг: 0 / 0
Простой запрос
    #39549421
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
HAVING MAX[(value)<>=2
...
Рейтинг: 0 / 0
Простой запрос
    #39549423
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
HAVING MAX(value)<>2
...
Рейтинг: 0 / 0
Простой запрос
    #39549467
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, по отдельности запросы работают, а как их объединить?
...
Рейтинг: 0 / 0
Простой запрос
    #39549468
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой конечный результат вы бы хотели видеть исходя из предложенных начальных данных?
...
Рейтинг: 0 / 0
Простой запрос
    #39549469
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Код: sql
1.
2.
3.
4.
5.
SELECT fio
FROM ls
WHERE book in ('Гуси', 'Лебеди')
GROUP BY fio
HAVING COUNT(DISTINCT book) = 2



Код: sql
1.
2.
3.
4.
5.
SELECT t1.fio
FROM ls t1, ls t2
WHERE t1.fio=t2.fio
  AND t1.book = 'Гуси'
  AND t2.book = 'Лебеди'



С
HAVING MAX(value)<>2
или
NOT IN (SELECT .. WHERE value=2)
либо
HAVING SUM(value=2)=0
...
Рейтинг: 0 / 0
Простой запрос
    #39549470
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183, нужны все гуси, лебеди, но только в паре, чтобы у фио были и гуси и лебеди, но если у фио есть значение 2, то это фио не должно попасть в выборку вообще.
...
Рейтинг: 0 / 0
Простой запрос
    #39549477
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIOBOOKValueМашаГуси1СашаЛебеди1МашаЛебеди1СашаГуси1ПашаГуси1ТаняГуси1ТаняЛебеди1

так?
...
Рейтинг: 0 / 0
Простой запрос
    #39549479
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,
должен остаться только Саша, потому что у него и Гуси и Лебеди и нет значения 2
...
Рейтинг: 0 / 0
Простой запрос
    #39549481
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT FIO, BOOK 
FROM ls
WHERE book in ('Гуси', 'Лебеди')
GROUP BY FIO, BOOK  
HAVING COUNT(DISTINCT book) = 2 and max(Value) <> 2
...
Рейтинг: 0 / 0
Простой запрос
    #39549483
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-982183,
должен остаться только Саша, потому что у него и Гуси и Лебеди и нет значения 2
А Таня?
...
Рейтинг: 0 / 0
Простой запрос
    #39549484
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183, у Тани тоже есть значение 2, она не должна попасть в выборку.
...
Рейтинг: 0 / 0
Простой запрос
    #39549489
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
конечный результат таблицы FIOBOOKValueМашаГуси1МашаГуси2СашаЛебеди1ПашаМир1МашаЛебеди1СашаГуси1ПашаГуси1ТаняГуси1ТаняГуси2ТаняЛебеди1
такой FIOСаша
...
Рейтинг: 0 / 0
Простой запрос
    #39549491
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT FIO
FROM ls
WHERE book in ('Гуси', 'Лебеди')
GROUP BY FIO
HAVING COUNT(DISTINCT book) = 2 and max(Value) <> 2



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


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