数据库结构和连接

时间:2015-11-13 02:15:43

标签: sql sql-server join

美好的一天,

这可能是一个愚蠢的问题,很抱歉。

我有这些表格。

StockTransfer Name Value X Y

StockTransferDetails Name Value X 54 Y 48 st_idstDetails_idst_id

InventoryLocation SourceLocationDestinationLocation

要显示的样本结果:详情

LocationID = 1,Description = 001,ItemID =样本项,ItemCode = location1,ItemDesc = location2 ..

  1. StockTransfer
  2. StockTransfer Details
  3. InventoryLocation
  4. 我正在SourceLocation及其DestinationLocation进行内部加入。

    我无法在StockTransfer上加入,因为detailsInventoryLocationStockTransferDetails字段。所以为了获得Source和Destination位置的描述,我必须遍历结果并在InventoryLocation上进行两次查询,这是我认为不好的。这会让它变慢吗?

    我的解决方案是为SourceLocationDestinationLocation创建一个单独的表格,让我加入他们......我是做对了还是反过来......我正在使用{{ 1}}

    我需要建议的人。 感谢。

1 个答案:

答案 0 :(得分:1)

你可以将它们加在一起,为什么不呢:

select * from
    StockTransferDetails a 
    left join InventoryLocation b on a.SourceLocation = b.Location_ID 
    left join InventoryLocation c on a.DestinationLocation = c.LocationID