考虑以下示例:
http://sqlfiddle.com/#!3/b89b8/2
有3个表:Car,Types,CarTypeMappings
我有一个Car ID(3,7)列表和一个CarTypeMapping ID列表(2,6,3,4),我想检索一个包含汽车及其类型的友好名称的表。
这是我想要的结果:
CarName CarType
------- --------
VW Jetta
VW Golf
Nissan Altima
Nissan Sentra
正如您在我的示例中所看到的,我有多个查询一次获得一行,但我想一次性完成此操作。
如果需要,我可以创建存储过程,但我不想多次轮询数据库。实现这一目标的最有效方法是什么?是否可以使用WHERE id IN(..)语法? 我可能有一百个ID用于一个查询。 感谢。
编辑:为了澄清,我有以下数组(CarIDs,CarTypeMappingIDs)对。对于上面的示例,它看起来像这样:
(3,2)
(3,6)
(7,3)
(7,4)
这个列表可能很长,所以我正在寻找一种有效的方法来查询数据库以获取名称。我的问题是我如何将这些ID用作查询的一部分。
答案 0 :(得分:1)
您可以同时JOIN
多个表:
SELECT
Car.name,
Types.typeName
FROM
CarTypeMappings
JOIN Car ON CarTypeMappings.CarID = Car.ID
JOIN Types ON CarTypeMappings.TypesID = Types.ID