поиск нескольких таблиц в базе данных postgres одним запросом? - PullRequest
7 голосов
/ 30 марта 2011

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

У меня есть две таблицы, "Города и страны", и я хочу один поиск, который найдет результаты обоих / либо

Как то так -

SELECT * FROM cities && countries WHERE name ='New York'

Любая помощь будет потрясающей!

1 Ответ

15 голосов
/ 30 марта 2011

Это можно сделать с помощью предложения JOIN или UNION. В зависимости от того, как вы хотите, чтобы ваш результат выглядел. (Я делаю некоторые предположения о вашей схеме в следующих примерах):

С СОЕДИНЕНИЕМ

SELECT *
FROM cities
JOIN countries ON (cities.country_id = country.id)
WHERE cities.name = 'New York' 
OR countries.name = 'New York'

С СОЮЗОМ (используйте ALL, если возможно, из соображений производительности)

SELECT cities.name, 'Is a city' AS type
FROM cities
WHERE cities.name = 'New York'
UNION ALL
SELECT countries.name, 'Is a country' AS type
FROM countries
WHERE countries.name = 'New York'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...