выберите запрос, соблюдая условия - PullRequest
0 голосов
/ 17 июня 2020

У меня есть таблица, содержащая 4 столбца (id, val1, val2, val3). Кто-нибудь знает, как выбрать строки, где val3 совпадает, где val1 отличается.

например

row1: (id1, user1, matheos, cvn)
row2: (id2, user2, matheos, cvn)
row3: (id3, user3, Claudia, bnps)

, тогда я возвращаю row1 и row2.

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Исходя из вашего объяснения, вы можете попробовать следующее:

select distinct t1.* from mytable t1 
JOIN mytable t2 where t1.val3 = t2.val3 
and t1.val1 != t2.val1;

Демо: SQL Fiddle

0 голосов
/ 17 июня 2020

Ваше объяснение не совсем понятно, но следующий запрос найдет совпадающие строки в соответствии с указанными вами критериями:

select a.*, b.*
from my_table a
join my_table b on b.val3 = a.val3 
               and b.val2 <> a.val2 
               and b.id < a.id

Чтобы создавать строки отдельно, вы также можете:

select *
from my_table a
where exists (
  select null from my_table b where b.val3 = a.val3 and b.val2 <> a.val2
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...