Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
28 / 27 / 7
Регистрация: 11.06.2011
Сообщений: 387

Совпадение по нескольким строкам

13.12.2017, 09:43. Показов 604. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть таблица
Code
1
2
3
4
5
 | N | P | B |
   1   1   1
   1   2   1
   2   2   0
   2   1   1
нужно вывести все N где (P=1 и B=1) одновременно с (P=2 и B=1)

т.е. должен получить только 1

Что-то не могу запрос придумать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2017, 09:43
Ответы с готовыми решениями:

Сделать like по нескольким строкам
Добрый день, коллеги! Возник у меня вопрос по SQL, который меня очень беспокоит. Помогите пожалуйста. У меня есть таблица T...

Поиск по строкам на совпадение по части строки с текстом Edit
Здравствуйте, подскажите пожалуйста как сделать поиск например я ввел в edit1 001-002 и должно вывести вот так error 001: expected token:...

Присвоение записи нескольким строкам
Здравствуйте! Подскажите, пожалуйста, как сделать так, чтобы все строки колонки number получили значение из dbedt1. В моем коде идет...

7
35 / 33 / 9
Регистрация: 27.10.2015
Сообщений: 115
13.12.2017, 10:00
SQL
1
2
3
SELECT N
FROM TABLE t1
WHERE (p=1 AND b=1) AND EXISTS(SELECT * FROM TABLE t2 WHERE (t2.p=2 AND t2.b=1) AND t1.n = t2.n)
0
28 / 27 / 7
Регистрация: 11.06.2011
Сообщений: 387
13.12.2017, 10:07  [ТС]
Dshedoo, Вариант не очень. Дело в том, что для примера я показал только два сравнения. В реальности их 14...
0
35 / 33 / 9
Регистрация: 27.10.2015
Сообщений: 115
13.12.2017, 10:13
Надо вернуть все N, для которых есть, например, следующие строки:
*-1-1
*-2-1
*-2-2
*-3-1
*-3-2
*-3-3
*-4-1
*-4-2
*-4-3
*-4-4
*-5-1
*-5-2
*-5-3
*-5-4
Так?
0
28 / 27 / 7
Регистрация: 11.06.2011
Сообщений: 387
13.12.2017, 10:16  [ТС]
Dshedoo, Для которых одновременно совпадает условия (P=1 и B=1) и (P=2 и B=1)

т.е. N=2 не выдаст, т.к. там где P=2 , у него B=0, а не 1
0
35 / 33 / 9
Регистрация: 27.10.2015
Сообщений: 115
13.12.2017, 10:23
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
WITH q AS (SELECT 1 AS n, 1 AS p, 1 AS b FROM dual UNION ALL
SELECT 1, 2, 1 FROM dual UNION ALL
SELECT 1, 2, 2 FROM dual UNION ALL
SELECT 1, 3, 1 FROM dual UNION ALL
SELECT 1, 3, 2 FROM dual UNION ALL
SELECT 1, 3, 3 FROM dual UNION ALL
SELECT 1, 4, 1 FROM dual UNION ALL
SELECT 1, 3, 1 FROM dual UNION ALL
SELECT 1, 3, 2 FROM dual UNION ALL
SELECT 1, 3, 3 FROM dual UNION ALL
SELECT 1, 4, 1 FROM dual UNION ALL
SELECT 1, 4, 2 FROM dual UNION ALL
SELECT 1, 4, 3 FROM dual UNION ALL
SELECT 1, 4, 4 FROM dual UNION ALL
SELECT 1, 5, 1 FROM dual UNION ALL
SELECT 1, 5, 2 FROM dual UNION ALL
SELECT 1, 5, 3 FROM dual UNION ALL
SELECT 2, 4, 1 FROM dual UNION ALL
SELECT 2, 4, 2 FROM dual UNION ALL
SELECT 2, 4, 3 FROM dual UNION ALL
SELECT 2, 4, 4 FROM dual UNION ALL
SELECT 2, 5, 1 FROM dual UNION ALL
SELECT 2, 5, 2 FROM dual UNION ALL
SELECT 2, 5, 3 FROM dual UNION ALL
SELECT 1, 5, 4 FROM dual)
 
SELECT n FROM (
SELECT DISTINCT n, COUNT(DISTINCT n||p||b) OVER (partition BY n ) AS z FROM q
WHERE (p = 1 AND b = 1)
OR (p = 2 AND b = 1)
OR  (p = 2 AND b = 2)
OR  (p = 3 AND b = 1)
OR  (p = 3 AND b = 2)
OR  (p = 3 AND b = 3)
OR  (p = 4 AND b = 1)
OR  (p = 4 AND b = 2)
OR  (p = 4 AND b = 3)
OR  (p = 4 AND b = 4)
OR  (p = 5 AND b = 1)
OR  (p = 5 AND b = 2)
OR  (p = 5 AND b = 3)
OR  (p = 5 AND b = 4))
WHERE z = 14
Так?
0
28 / 27 / 7
Регистрация: 11.06.2011
Сообщений: 387
13.12.2017, 10:45  [ТС]
Проверить не могу, похоже под sqlite это не работает... Либо я не правильно что-то делаю
0
765 / 666 / 194
Регистрация: 24.11.2015
Сообщений: 2,163
13.12.2017, 13:35
Я думаю, что надо так
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
WITH q AS ( SELECT * FROM (
SELECT 1 AS n, 1 AS p, 1 AS b FROM dual UNION ALL
SELECT 1, 2, 1 FROM dual UNION ALL
SELECT 1, 2, 2 FROM dual UNION ALL
SELECT 1, 3, 1 FROM dual UNION ALL
SELECT 1, 3, 2 FROM dual UNION ALL
SELECT 1, 3, 3 FROM dual UNION ALL
SELECT 1, 4, 1 FROM dual UNION ALL
SELECT 1, 3, 1 FROM dual UNION ALL
SELECT 1, 3, 2 FROM dual UNION ALL
SELECT 1, 3, 3 FROM dual UNION ALL
SELECT 1, 4, 1 FROM dual UNION ALL
SELECT 1, 4, 2 FROM dual UNION ALL
SELECT 1, 4, 3 FROM dual UNION ALL
SELECT 1, 4, 4 FROM dual UNION ALL
SELECT 1, 5, 1 FROM dual UNION ALL
SELECT 1, 5, 2 FROM dual UNION ALL
SELECT 1, 5, 3 FROM dual UNION ALL
SELECT 2, 4, 1 FROM dual UNION ALL
SELECT 2, 4, 2 FROM dual UNION ALL
SELECT 2, 4, 3 FROM dual UNION ALL
SELECT 2, 4, 4 FROM dual UNION ALL
SELECT 2, 5, 1 FROM dual UNION ALL
SELECT 2, 5, 2 FROM dual UNION ALL
SELECT 2, 5, 3 FROM dual UNION ALL
SELECT 1, 5, 4 FROM dual))
, s1 AS (
SELECT * FROM q
WHERE p=1 AND b=1)
, s2 AS (
SELECT * FROM q
WHERE p=1 AND b=1)
SELECT DISTINCT n
FROM s1 INNER JOIN s2 USING (n)
;
А написано это на Oracle (поскольку есть dual)
У меня сработало и вернуло 1
Но чтобы проверить, лучше сформировать большую таблицу (например в Excel), чтобы желающие могли ее импортировать и сверить результат. А то ответ 1 - это фигня с ушами, и может быть получен, например, как
SQL
1
SELECT 1 n FROM dual
Добавлено через 35 минут
Цитата Сообщение от admsasha Посмотреть сообщение
В реальности их 14
Если с AND, то будем джойнить 14 таблиц (представлений), а если более сложная логика, то придется поэтапно. А вообще-то лучше писать тему в том разделе, на какой базе работаете, поскольку реализация может сильно от этого зависеть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2017, 13:35
Помогаю со студенческими работами здесь

Задать одинаковый id нескольким строкам
У меня есть список Вася Петя 0 0 Марина 0 Каждой элементу этого списка надо задать id такое, что если строка содержит...

Изменение значений в бд из таблицы по нескольким строкам
Добрый день товарищи! не соображу, имеется бд, есть форма php в ней выгружается по поиску данные из бд в таблицу, замутил чтоб в таблице...

Разобраться в коде и написать комментарии к нескольким строкам
Доброго времени суток Сегодня на защите курсовой не смог объяснить несколько строк кода, пожалуйста напишите к ним комментарии Это...

Сравнить каждый элемент с каждым, если есть совпадение, то соединить всю строку, в которой найдено совпадение
Доброго времени суток! Есть два массива строк разного размера (элементы массива разделены запятой). Необходимо сравнить каждый элемент с...

Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru