我正在查询Postgres DB,并将返回的值之一用作另一个查询的参数。
第一个查询:
SELECT DISTINCT region FROM countries;
返回:
Middle East & North Africa
Europe & Central Asia
North America
Sub-Saharan Africa
South Asia
Latin America & Caribbean
East Asia & Pacific
SELECT * FROM countries
WHERE region = 'value from the first query';
在返回一个空数组时,返回带有第一个查询中大多数值的国家/地区列表,但“拉丁美洲和加勒比海”和“撒哈拉以南非洲”除外。
回复评论: 我实际上是通过Node JS在前端使用Knex和React来使用它的,但是我试图通过pgAdmin来简化问题。
我的节点代码:
// get Regions
const getRegions = (req, res, db) => {
db.distinct('region as name', 'region as value',).select().table('countries')
.then(function(countries) {
res.send(countries)
})
.catch(err => res.status(400).json('Error getting regions'))
}
// get Countries list based on region
const getCountriesByregion = (req, res, db) => {
console.log(req.params.region)
db.select('country_code as value', "country_name as name")
.where('countries.region', '=', req.params.region)
.from('countries')
.then(function(countries) {
console.log(countries)
res.send(countries)
})
.catch(err => res.status(400).json('Error getting countries'))
}