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

tja*_*jar 7 sql database postgresql

我试图在一个数据库中搜索多个表,但我没有运气.

我有两个表,城市和国家,我想要一个搜索,从两个/或两个找到结果

像这样的东西 -

SELECT * FROM cities && countries WHERE name ='New York'
Run Code Online (Sandbox Code Playgroud)

任何帮助都是极好的!

Luk*_*der 16

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

加入

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

使用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'
Run Code Online (Sandbox Code Playgroud)