SQL查询是否基于其他表列值从表中获取项目列表?
我有两张桌子: 蓝图:SQL查询是否基于其他表列值从表中获取项目列表?,sql,database,sqlite,Sql,Database,Sqlite,我有两张桌子: 蓝图: ID| BlueprintID| CarID 汽车: ID, Name, Color 我需要根据blueprintID获得所有汽车。 我正在使用SQLLite 谢谢您需要将一个表连接到另一个表 选择c.ID、c.Name、c.Color从车中c加入b.CarID=c.ID上的蓝图b,其中b.BlueprintID=[yourlueprintid] 我给了两个表一个别名,这使它更容易,尤其是当您有很多字段时。如果两个表中都出现了一个同名字段,而您没有使用类似c.name
ID| BlueprintID| CarID
汽车:
ID, Name, Color
我需要根据blueprintID
获得所有汽车。
我正在使用SQLLite
谢谢您需要将一个表连接到另一个表
选择c.ID、c.Name、c.Color从车中c加入b.CarID=c.ID上的蓝图b,其中b.BlueprintID=[yourlueprintid]
我给了两个表一个别名,这使它更容易,尤其是当您有很多字段时。如果两个表中都出现了一个同名字段,而您没有使用类似
c.name
或Car.name`的方法指定哪个表,则会出现字段名不明确的错误 这可以通过子查询完成:
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 = ?
(如果一辆车可能有多个蓝图,则第二次查询需要
选择DISTINCT
)选择c.*,B.车辆c的BlueprintID,蓝图B
其中C.ID=B.CarID您尝试了什么,出现了哪些错误?您应该停止使用这些类型的连接Aaron Bertrand写了一篇很好的文章