SQL查询根据其他表列值从表中获取项目列表?

时间:2014-11-20 09:58:24

标签: sql database sqlite

我有这两个表: 的蓝图

ID| BlueprintID| CarID

汽车

ID, Name, Color

我需要根据blueprintID获取所有车辆。 我正在使用SQLLite。

由于

3 个答案:

答案 0 :(得分:0)

您需要将一个表连接到另一个表。

SELECT c.ID, c.Name, c.Color FROM CAR c JOIN BLUEPRINT b ON b.CarID = c.ID WHERE b.BlueprintID = [YOURBLUEPRINTID]

我给两个表都添加了一个别名,特别是当你有很多字段时,它会更容易。如果两个表中都出现了具有相同名称的字段,并且您没有通过使用c.Name或Car.Name`这样的内容来指定哪个表格,则会出现不明确的字段名称错误。

答案 1 :(得分:0)

这可以使用子查询来完成:

SELECT *
FROM Car
WHERE ID IN (SELECT CarID
             FROM BluePrint
             WHERE BlueprintID = ?)

或加入:

SELECT Car.*
FROM Car
JOIN BluePrint ON Car.ID = BluePrint.CarID
WHERE BlueprintID = ?

(如果一辆车可能有多个蓝图,则第二个查询需要SELECT DISTINCT。)

答案 2 :(得分:0)

SELECT c。*,B.BlueprintID FROM CAR C,BluePrint B. 在哪里C.ID = B.CarID