使用单个查询在postgres DB中搜索多个表?

时间:2011-03-30 07:58:13

标签: sql database postgresql

我正在尝试在单个数据库中搜索多个表,但我没有运气。

我有两个表,城市和国家/地区,我想要一个搜索结果来自两个/

像这样 -

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

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:15)

这可以使用JOINUNION子句来完成。取决于您希望结果的样子。 (我在以下示例中对您的架构做了一些假设):

使用JOIN

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

使用UNION(如果可以,请使用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'