возвращать строки семья с SQL

голоса
2

Это мой первый вопрос в StackOverflow так что будьте добры ко мне :)

У меня есть таблица, которая имеет семью столбца, когда я сделать запрос (с где даного) я хочу, чтобы показать результаты в виде группы строк с одной и той же семьи

например, таблица магазин:

+----+--------+-------+
| id | family | money |
+----+--------+-------+
|  1 |      1 |   100 |
|  2 |      1 |    70 |
|  3 |      2 |    10 |
|  4 |      2 |    20 |
|  5 |      3 |    50 |
+----+--------+-------+

Поэтому я хочу при выполнении запроса, как это:

SELECT * FROM shop where money=100 --(adding to the query of course what's needed)

она будет выбирать эти два:

+-----+----------+---------+
| id  |  family  |  money  |
+-----+----------+---------+
| 1   |       1  |    100  |
| 2   |       1  |     70  |
+-----+----------+---------+
Задан 27/11/2018 в 15:11
источник пользователем
На других языках...                            


2 ответов

голоса
1

Вы можете использовать коррелированный подзапрос с Exists():

SELECT
  t1.*
FROM shop t1
WHERE EXISTS (SELECT 1 FROM shop t2
              WHERE t2.family = t1.family AND 
                    t2.money = 100)
Ответил 27/11/2018 в 15:21
источник пользователем

голоса
1

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

SELECT s.*
FROM shop 
WHERE s.family IN (SELECT s2.family FROM shop s2 WHERE s2.money = 100);
Ответил 27/11/2018 в 15:15
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more