see*_*ker 3 sql sql-server-2008
我有一个SQL表,用于保存买家个人数据,如FirstName,LastName,OGCard; OGCard - 表示客户个人卡号的字段.
接下来我有一张名为Cards的表,其中包含以下格式购买的十件物品的数据:OGCard,Item1ID,...,Item10ID,Item1Quantity,...,Item10Quantity
在表项中,我得到了这样的结构ItemID,ItemName
我想从CardNumber购买所有商品
我想我应该这样做
SELECT Buyers.FirstName, Items.Name, Cards.Item1Quantity
FROM Buyers
INNER JOIN Cards ON Buyers.OGCard=Cards.OGCard
INNER JOIN Items ON Cards.Item1ID=Items.ItemName
WHERE OGCard=13451
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以看到第一个项目的名称和数量.但是我无法对列Item2ID执行相同的连接,依此类推.你能给我一些解决方案吗?
在不知道如何设置Items表的情况下,您可以执行以下操作:
SELECT Buyers.FirstName
, Items.Name
, Cards.Item1Quantity
, C2.Item2Quantity
, C3.Item3Quantity
, C4.Item4Quantity
, C5.Item5Quantity
, C6.Item6Quantity
, C7.Item7Quantity
, C8.Item8Quantity
, C9.Item9Quantity
, C10.Item10Quantity
FROM Buyers
INNER JOIN Cards ON Buyers.OGCard=Cards.OGCard
INNER JOIN Items ON Cards.Item1ID=Items.ItemName
LEFT OUTER JOIN Items ON Cards.Item2D=Items.ItemName C2
LEFT OUTER JOIN Items ON Cards.Item3D=Items.ItemName C3
LEFT OUTER JOIN Items ON Cards.Item4D=Items.ItemName C4
LEFT OUTER JOIN Items ON Cards.Item5D=Items.ItemName C5
LEFT OUTER JOIN Items ON Cards.Item6D=Items.ItemName C6
LEFT OUTER JOIN Items ON Cards.Item7D=Items.ItemName C7
LEFT OUTER JOIN Items ON Cards.Item8D=Items.ItemName C8
LEFT OUTER JOIN Items ON Cards.Item9D=Items.ItemName C9
LEFT OUTER JOIN Items ON Cards.Item10D=Items.ItemName C10
WHERE OGCard=13451
Run Code Online (Sandbox Code Playgroud)
没有表格布局,这只是一个猜测,我猜如果这有效,你需要看看架构是如何布局的......
| 归档时间: |
|
| 查看次数: |
5454 次 |
| 最近记录: |