2015-11-13 3 views
1

Good Day Guys,Структура и объединение данных в базе данных

Это может быть глупый вопрос, так извините.

У меня есть эти столы.

StockTransfer st_id

StockTransferDetailsstDetails_id, st_id, SourceLocation, DestinationLocation

InventoryLocation LocationID, Description

Пример Результат будет отображаться: для деталей

ItemID = 1, ItemCode = 001, ItemDesc = элемент выборки, SourceLocation = LOCATION1, DestinationLocation = LOCATION2 ..

  1. StockTransfer
  2. StockTransfer Подробности
  3. InventoryLoca Тион

Я делаю внутреннее соединение на StockTransfer и его details.

Я не могу присоединиться к InventoryLocation, так как у StockTransferDetails есть SourceLocation и DestinationLocation Поля. поэтому, чтобы получить описание местоположения «Источник» и «Место назначения», я должен перебрать результат и дважды выполнить запрос в InventoryLocation, который, я думаю, плох. Это делает его медленнее?

Мое решение сделать отдельную таблицу для SourceLocation и DestinationLocation для меня их Join ... Могу ли я делать это правильно или наоборот .. Я использую MSSql

Мне нужен совет, ребята , Спасибо.

+0

Можете ли вы поделиться структуры таблицы? –

+0

Спасибо. Какой результат вы хотите увидеть? Я подозреваю, что вы можете присоединиться к «InventoryLocation» дважды, один раз «Source» и один раз «Destination», чтобы решить вашу проблему. –

+0

@ shree.pat18 Каков ваш совет, сэр? –

ответ

1

Вы можете присоединиться к ним вместе, почему бы не:

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

да ... это то, что я сделал ... –