我有以下两个表:
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>airport</th>
</tr>
<tr>
<td>id_airport</td>
</tr>
<tr>
<td>name_airport</td>
</tr>
</table>
<h4>and</h4>
</body>
</html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>route</th>
</tr>
<tr>
<td>id_route</td>
</tr>
<tr>
<td>id_airport_origin</td>
</tr>
<tr>
<td>id_airport_destination</td>
</tr>
</table>
</body>
</html>
route.id_airport_origin和route.id_airport_destination都是airport.id_airport的外键
我需要查询与其前键匹配的name_airport列。
我尝试执行以下查询没有成功。
SELECT route.id.route, airport.name_airport, airport.name_airport
FROM route
INNER JOIN airport ON route.id_airport_origin AND route.id_airport.destination = airport.id_airport
我尝试了上述代码的几种组合,但无法获得正确的查询。
有任何想法吗?
您的查询不保留任何行,因为您要查找的IDid_airport_origin
与id_airport_destination
该路线的ID都等于和两者的机场:很显然,这不能匹配(...,除非该路线的起点和终点相同)。
在Insead,您需要两次连接机场表,一次是起点,另一次是终点:
select
r.id_route,
ao.name_airport name_airport_origin
ad.name_airport name_airport_destination
from route r
inner join airport ao on ao.id_airport = r.id_airport_origin
inner join airport ad on ad.id_airport = r.id_airport_destination
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句