Table 加入引用相同的主键 T-SQL

Table Join Referencing Same Primary Key T-SQL

让一个引用相同 Primary KeyTable 为它的 Foreign Key 的倍数赋值是否有效? IE。 :

Table 菜单

ItemID(PK)  DishName        Category
  1         Fried Chicken   Poultry
  2         Salmon          Fish
  3         Spaghetti       Pasta
  4         Steak           Beef
  5         Roasted Cod     Fish
  6         Baked Halibut   Fish
  7         Maple Duck      Poultry

Table [TableOrder] 其中 OrderItem# 指的是 Menu table.

的主键
PartyID OrderItem1(FK)  OrderItem2(FK)  OrderItem3(FK)
    1       3               2               5
    2       7               1               2
    3       2               5               6
    4       4               4               2
    5       6               3               2

是否有可能(你怎么可能)return 一个 query 列出这样的类别? (其中 Order#CatMenu table 中的 aliasCategory 使用(内部)Join)

PartyID Order1Cat  Order2Cat  Order3Cat
  1     Pasta       Fish        Fish    
  2     Poultry     Poultry     Fish    
  3     Fish        Fish        Fish    
  4     Beef        Beef        Fish    
  5     Fish        Pasta       Fish

 SELECT        
     [Table Order].PartyID, [Table Order].OrderItem1, 
     [TableOrder].OrderItem2, [Table Order].OrderItem3, 
     Menu.Category
 FROM
     [Table Order] 
 INNER JOIN
     Menu ON [Table Order].OrderItem1 = Menu.ItemID
     ...
     (alias ?)...
     (subquery ?)...

如果不是,请建议可以产生类似结果的替代结构。感谢您的宝贵时间。

尝试:

SELECT tblo.PartyID, 
       tm1.Category Order1Cat,
       tm2.Category Order2Cat,
       tm3.Category Order3Cat
FROM [Table Order] tblo
INNER JOIN [Table Menu] tm1
    ON tblo.OrderItem1 = tm1.ItemID
INNER JOIN [Table Menu] tm2
    ON tblo.OrderItem2 = tm2.ItemID
INNER JOIN [Table Menu] tm3
    ON tblo.OrderItem3 = tm3.ItemID