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