SQL - выберите отдельные строки и объедините их с другой таблицей, чтобы получить данные - PullRequest
2 голосов
/ 12 июля 2011

У меня есть 2 таблицы:

1) персона (person_id, person_name)

2) машины (car_id, person_id)

Я хочу получить имена всех людей, у которых есть машины без дубликатов.

Вот что я придумал:

SELECT person.person_name, cars.person_id
FROM cars
INNER JOIN person
ON person.person_id=cars.person_id

Но я не хочу дубликатов, поэтому мне нужно включить их, используя что-то вроде этого:

SELECT DISTINCT person_id FROM cars

Ответы [ 5 ]

4 голосов
/ 12 июля 2011
select person_name from person
where person_id in ( select person_id from cars )
0 голосов
/ 15 июля 2011
SELECT p.person_id AS person_id, p.name AS name FROM person p, cars c    
WHERE p.person_id = c.person_id    
GROUP BY b.brand_id
0 голосов
/ 12 июля 2011

Попробуйте это:

SELECT  p.person_id, p.person_name
   FROM  person p
WHERE     EXISTS
(
    SELECT 1
      FROM cars c
    WHERE c.person_id = p.person_id
)
0 голосов
/ 12 июля 2011
SELECT DISTINCT(person.person_name) 
FROM person, cars 
WHERE person.person_id = cars.person_id
0 голосов
/ 12 июля 2011
SELECT DISTINCT person.person_name, person.person_id
FROM cars
INNER JOIN person
ON person.person_id=cars.person_id

Хотя могут быть более производительные альтернативы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...