我正在生成一个查询。我有两个表名:航班和目的地。
在航班表中,我有列:id,出发地,目的地,价格,航空公司,类和目的地表,我有列:it.only("diag", function(done) {
let data = null;
app.client.timeoutsAsyncScript(5000).executeAsync(function(data, done) {
console.log("START");
done();
});
});
现在我想获得区域为id, destination, country, region.
的航班详情。我在做"Europe"
。我的疑问是:
inner join
它给我的结果是空的。如果我从查询中删除(SELECT *
FROM `flights`
INNER JOIN destinations ON flights.destination = destinations.destination
where region= 'europe'
),那么它会向我提供所有航班和目的地列的结果。
请帮帮我
答案 0 :(得分:0)
试试这个
SELECT *
FROM `flights`
INNER JOIN destinations
ON flights.destination = destinations.destination
where LOWER(region) = 'europe'
答案 1 :(得分:0)
我注意到您说'Europe'
是该地区。 MySQL可以区分大小写,具体取决于用于数据库和表的排序规则(但默认情况下不是)。所以,我将从比较正确的案例开始:
SELECT *
FROM flights f INNER JOIN
destinations d
ON f.destination = d.destination
WHERE d.region = 'Europe';
如果这不起作用,那么奇怪的字符可能已经悄悄进入region
列。你可以尝试:
WHERE lower(d.region) like '%europe%'
答案 2 :(得分:0)
由于您正在使用内部联接,因此可以将区域指定为联接条件的一部分,如下所示:
SELECT *
FROM `flights`
INNER JOIN destinations ON flights.destination = destinations.destination
AND destinations.region = 'europe'
Flights.Destination值是否存储Destination表的Id?您可能需要将连接调整为
flights.destination = destinations.Id