Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выбрать одинаковые значения из базы / 22 сообщений из 22, страница 1 из 1
08.03.2021, 03:52
    #40051507
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Здравствуйте.
Есть база base с таблицей table и полями N1 N2 N3
N1 N2 N3
10 1 5
10 1 5
10 1 6
20 1 5
20 1 5
30 2 5
30 2 5

нужно отобрать одинаковые значения из поле N1 где поле N2 равно 1 и поле N3 содержит и 5 и 6
должно отобраться:
N1 N2 N3
10 1 5
10 1 6
...
Рейтинг: 0 / 0
08.03.2021, 12:33
    #40051560
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH cte AS
(   SELECT n1, n2
    FROM table
    WHERE n2 = 1 AND n3 IN (5, 6)
    GROUP BY n1, n2
    HAVING COUNT(DISTINCT n3) = 2 )
SELECT n1, n2, 5 FROM cte
UNION ALL
SELECT n1, n2, 6 FROM cte;
...
Рейтинг: 0 / 0
08.03.2021, 14:35
    #40051607
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
а в одну строку это нельзя сделать? - select n1 n2 n3 from table where.........
...
Рейтинг: 0 / 0
08.03.2021, 17:53
    #40051665
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Можно. Замените переводы строк на пробелы.
...
Рейтинг: 0 / 0
09.03.2021, 02:56
    #40051725
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
Код: sql
1.
2.
3.
Dim tb As DataTable
            tb = getdbasetable("select N1,N2,N3 from  table t1 where exists (select 1 from table t2 where t1.N1=t2.N1 and N3 in (5,6));")
            DataGridView1.DataSource = tb



попробовал вот так, но по полю N3 не отбирает только 5 и 6
...
Рейтинг: 0 / 0
09.03.2021, 08:03
    #40051747
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957
попробовал вот так

Запрос неверный.

fiddle
...
Рейтинг: 0 / 0
09.03.2021, 09:54
    #40051781
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
а в чем ошибка?
...
Рейтинг: 0 / 0
09.03.2021, 10:06
    #40051791
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957
в чем ошибка?
Я ж ссылку дал. И там чётко видно, что Ваш запрос выводит не нужный результат, а хрень голимую.

А ошибка очевидная - запрос контролирует наличие хотя бы одной записи, с n3 = 5 или 6, но не контролирует, что присутствуют ОБА значения.
...
Рейтинг: 0 / 0
09.03.2021, 10:26
    #40051802
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
а можно пример , как контролировать оба значения?
...
Рейтинг: 0 / 0
09.03.2021, 12:54
    #40051865
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957

а можно пример , как контролировать оба значения?

"он над нами издевался..." (ц)
...
Рейтинг: 0 / 0
09.03.2021, 13:42
    #40051896
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
paver,
Код: sql
1.
2.
3.
Dim tb As DataTable
tb = getdbasetable("select N1,N2,N3 from  table where N2=1 and N3 in(5,6) group by N1,N2 having count(distinkt N3) =2;")
DataGridView1.DataSource = tb



где издивательсто? нужно записать в одну строку, пробую вот так, он выдает ошибку .
...
Рейтинг: 0 / 0
09.03.2021, 13:50
    #40051905
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957,
это в visual basic.net пишется
...
Рейтинг: 0 / 0
09.03.2021, 16:02
    #40051982
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957
пробую вот так, он выдает ошибку
Во-первых, сообщения об ошибках следует читать, а не просто отмечать, что они появились.
Во-вторых, получив сообщение об ошибке от среды или коннектора, нужно озаботиться получением сообщения об ошибке от того, кто её обнаружил - в данном случае от MySQL-сервера.
В третьих, следует проверять свои запросы. ПОБУКВЕННО.
...
Рейтинг: 0 / 0
09.03.2021, 16:18
    #40051988
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
где ошибка то от MySql сервера не пойму
завтра скрин ошибки в Visual basic.net прикреплю
...
Рейтинг: 0 / 0
09.03.2021, 18:45
    #40052073
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957
где ошибка то от MySql сервера не пойму

https://dev.mysql.com/doc/refman/8.0/en/error-log.html
...
Рейтинг: 0 / 0
10.03.2021, 02:56
    #40052132
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,
ну вот я пишу запрос и выдает ошибку см.скрин 01.png
...
Рейтинг: 0 / 0
10.03.2021, 03:43
    #40052133
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957,

Запятая перед словом FROM не нужна.
Называть таблицу table - плохая практика, даже если работает, т.к. это слово из синтаксиса.
Слово where два раза подряд писать не надо, достаточно одного.

А сообщения об ошибках надо публиковать текстом, а не фотографией.
...
Рейтинг: 0 / 0
10.03.2021, 06:40
    #40052141
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
miksoft,

ну вот уже же все исправлено и все равно ошибка.
Код: sql
1.
tb = getdbasetable("select N1,N2,N3 from tabl where N2=1 and N3 in(5,6) group by N1,N2 having count (distinct N3)=2;")



пишет - Ошибка синтаксиса (пропущен оператор) в выражении запроса 'count (distinct N3)=2'
...
Рейтинг: 0 / 0
10.03.2021, 07:58
    #40052146
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
1) COUNT() - функция, а не процедура, и пробел между именем функции и скобкой недопустим.
2) Ошибка - не MySQL, а VB.Net, а если точнее, так и вовсе от ADO.Net, посему Вы явно ошиблись форумом.
...
Рейтинг: 0 / 0
11.03.2021, 02:47
    #40052499
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,

без пробела та же ошибка, ну мне нужен был запрос select, а он из SQL, без этого выражения count(distinct N3)=2 никак нельзя?
...
Рейтинг: 0 / 0
11.03.2021, 07:52
    #40052518
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
sergg1957
без этого выражения count(distinct N3)=2 никак нельзя?
В этом способе - нет, если в структуре нет уникального индекса по (n1, n2, n3). А его нет...
...
Рейтинг: 0 / 0
11.03.2021, 09:31
    #40052529
sergg1957
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одинаковые значения из базы
Akina,

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


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