如何通过三表JOIN查询指定exchange对应的instrument表symbol值
实现SQL语句
三张表的关联逻辑为:exchange 表通过id关联exchange_api表的exchange_id字段,exchange_api表再通过id关联instrument表的exchange_api_id字段,最终筛选exchange.name = 'PARIS'的记录,取instrument.symbol作为结果即可,语句如下:
SELECT i.symbol FROM exchange e INNER JOIN exchange_api ea ON e.id = ea.exchange_id INNER JOIN instrument i ON ea.id = i.exchange_api_id WHERE e.name = 'PARIS';
测试数据修正提示
你当前提供的测试插入数据存在关联不一致问题:exchange表中PARIS对应的id为1,但exchange_api表插入的记录里exchange_id为5,这会导致执行上述SQL查询不到结果。你可以将exchange_api的插入语句调整为以下内容即可得到预期结果:
INSERT INTO exchange_api (id, api_name, exchange_id) VALUES (8, 'PARIS-API', 1);
内容的提问来源于stack exchange,提问作者user1285928
相关产品推荐
相关产品推荐

