SQL查询搜索2个表

时间:2016-08-26 20:06:13

标签: mysql

嗨我试图搜索两个表并得到我需要的结果我有一个表与用户id的资格,以及如下所示:

表名:phpvms_airframe_qual

id    pilotid   airframe   icao
0       1001      name     tutr
1       1001      name     eufi
2       1002      name     tutr
3       1002      name     king
4       1001      name     a400

表名:phpvms_aircraft

id    fullname   icao    registration
0       tutor    tutr        G-BXEX
1      typhoon   eufi        ZJ932
2       tutor    tutr        G-DXRT
3      kingair   king        ZZ990
4       atlas    a400        ZM400

我需要做的是获取飞机列表,但只显示用户有资格的飞机。因此,用户1001将从示例中显示以下内容:

id    fullname   icao    registration
0       tutor    tutr        G-BXEX
1      typhoon   eufi        ZJ932
2       tutor    tutr        G-DXRT
4       atlas    a400        ZM400

和1002将显示以下内容:

id    fullname   icao    registration
0       tutor    tutr        G-BXEX
2       tutor    tutr        G-DXRT
3      kingair   king        ZZ990

我试过了:

SELECT * FROM `phpvms_aircraft` WHERE phpvms_aircraft.icao = (SELECT icao FROM `phpvms_airframe_qual` WHERE pilotid = '1001')

但是我发现错误任何想法如何做到这一点

由于

2 个答案:

答案 0 :(得分:0)

这应该可行,但我无法测试它。让我知道它是否没有出现错误。

SELECT * FROM phpvms_aircraft
    INNER JOIN phpvms_airframe_qual ON phpvms_airframe_qual.icao = phpvms_aircraft.icao
    WHERE phpvms_airframe_qual.pilot_id = 1001;

答案 1 :(得分:0)

您可以进行内部联接以获得此答案:

 select * from phpvms_aircraft inner p join phpvms_airframe_qual pq on p.icao = pq.icao where ...