我有3张桌子: 单位 类型 派别
单位具有来自类型和派系的外键(TypeID和FactionID)。 我需要使用Types.TypeName和Factions.FactionName获取Units.UnitName。
我想我可能需要加入,但我不确定如何构建它。有什么帮助吗?
编辑:以下是相关表格的屏幕截图:http://i.imgur.com/Il9Qn.png
我需要返回这些数据: UnitName - SupplyCost - CreditsCost - MetalCost - CrystalCost
获取此信息的表单将提供FactionName和TypeName,因为它们是文本值,因此用户可以轻松理解,而不是数字ID。
答案 0 :(得分:3)
SELECT Units.UnitName
FROM Units INNER JOIN Types ON Units.TypeId = Types.TypeId
INNER JOIN Factions ON Units.FactionId = Factions.FactionId
WHERE Types.TypeName = @typeName
AND Factions.FactionName = @factionName
那会是你追求的吗?如果没有,您可能需要在您的问题中提供更多信息。
答案 1 :(得分:3)
类似的东西:
select UnitName, SupplyCost, CreditsCost, MetalCost, CrystalCost from Units
inner join Types on Types.TypeID = Units.TypeID
inner join Factions on Faction.FactionID = Units.FactionID
WHERE Types.TypeName = @typeName
AND Factions.FactionName = @factionName
答案 2 :(得分:2)
请检查
select UnitName, SupplyCost, CreditsCost, MetalCost, CrystalCost from Units
inner join Types on Types.TypeID = Units.TypeID
inner join Factions on Faction.FactionID = Units.FactionID
WHERE Types.TypeName = @typeName
AND Factions.FactionName = @factionName
答案 3 :(得分:2)
SELECT
SupplyCost, CreditsCost, MetalCost, CrystalCost
FROM
Units
INNER JOIN Types ON Units.TypeID = Types.TypeId
INNER JOIN Factions ON Units.FactionId = Factions.TypeId
WHERE
Types.TypeName = 'value from form for types'
AND
Factions.FactionName = 'value from form for factions'
您可以阅读http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html以获得对JOIN
的精彩和直观的解释