Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос с использованием массива 
:(
    Опции темы
polin11
Дата 15.7.2020, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



Использую СУБД PostgreSQL.
Для примера, есть таблица 
1 столбец - имя владельца
Выделить всёкод SQL
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
2 столбец - название авто
CREATE TABLE cars (
  id INT NOT NULL,
  name VARCHAR(30) NOT NULL,
  car VARCHAR(30)
);
INSERT INTO cars 
    (id, name, car) 
VALUES 
    (1,'John''BMW'),
    (2,'Mike''BMW'),
    (3,'John''OPEL'),
    (3,'John''KIA')

Есть набор названий авто ['BMW', 'KIA'], нужно найти владельцев, которые владели всеми этими авто.
Придумал 2 варианта реализации:
Выделить всёкод SQL
1:
2:
3:
4:
5:
6:
7:
SELECT name
FROM cars
WHERE car =  'BMW'
INTERSECT
SELECT name
FROM cars
WHERE car =  'KIA'


Либо
Выделить всёкод SQL
1:
2:
3:
4:
5:
SELECT name
FROM cars
WHERE car =  ANY(ARRAY['BMW''KIA'])
GROUP BY name
HAVING COUNT(name) = 2


Вопрос, есть ли другие более оптимальные и простые варианты реализации




PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0719 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.