SQL-запрос на линии - PullRequest
       13

SQL-запрос на линии

0 голосов
/ 03 сентября 2018

У меня есть одна таблица SQL Есть записи

+-----------------+------+
| idanother_table | Col1 |
+-----------------+------+
|              11 |   50 |
|              11 |   61 |
|              11 |   62 |
|              12 |   61 |
|              12 |   62 |
|              13 |   50 |
|              13 |   65 |
+-----------------+------+

Я хочу запрос, который дает этот результат

+-----------------+------+
| idanother_table | Col1 |
+-----------------+------+
|              11 |   50 |
|              11 |   61 |
|              11 |   62 |
|              13 |   50 |
|              13 |   65 |
+-----------------+------+

Получите все строки, связанные с id_anothertable and col1 = 50.

Таким образом, когда для идентификатора у нас есть col1 = 50, мы берем все строки, связанные с этим идентификатором

Может быть, эта проблема является дубликатом другой, но на самом деле я не знаю, как назвать свою проблему, поэтому у меня есть база для исследования

Ответы [ 5 ]

0 голосов
/ 03 сентября 2018

Я бы использовал оператор exists в запросе, который проверяет col1 = 50:

SELECT *
FROM   mytable a
WHERE  EXISTS (SELECT *
               FROM   mytable b
               WHERE  a.idanother_table = b.idanother_table AND
                      b.col1 = 50)
0 голосов
/ 03 сентября 2018

Вы можете использовать exists

SELECT t1.* FROM t t1
WHERE exists
(
    SELECT 1 
    FROM  t2
    where t1.idanother_table =t2.idanother_table and t2.Col1 = 50
)
0 голосов
/ 03 сентября 2018

Вы можете попробовать использовать IN

SELECT * FROM t 
WHERE idanother_table IN 
(
    SELECT idanother_table 
    FROM t
    where Col1 = 50
)

или exists

SELECT * 
FROM t t1 
WHERE exists
(
    SELECT 1 
    FROM t tt
    where tt.Col1 = 50 and t1.idanother_table = tt.idanother_table
)
0 голосов
/ 03 сентября 2018
SELECT idanother_table, Col1 
FROM YourTable 
WHERE idanother_table IN (SELECT idanother_table 
    FROM YourTable 
    WHERE Col1=50
)
0 голосов
/ 03 сентября 2018

вы можете использовать объединение в подзапросе для col1 = 50 перенастройки idanother_table

select * from my_table 
inner join (
    select  idanother_table 
    from my_table  
    where col1 = 50  
) t on t.idanother_table = my_table.idanother_table 
...