我有这两个表: 的蓝图:
ID| BlueprintID| CarID
汽车:
ID, Name, Color
我需要根据blueprintID
获取所有车辆。
我正在使用SQLLite。
由于
答案 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