Скажем, у меня есть таблицыКак я могу принимать значения из одной таблицы, исходя из значений в другой?
Parts
PartID (Primary Key)
Part Name
Orders
OrderID (Primary Key)
CustID (Foreign Key)
OrderDetails
OrderDetailsID (Primary Key)
PartID (Foreign Key)
Quantity
OrderID (Foreign Key)
Если бы я хотел, чтобы получить часть имени для нескольких PartIDs из OrderDetails, как бы я идти об этом? Я бы использовал две таблицы данных? Я смущен, так как не вижу эффективного способа сделать это. Единственное, что я могу думать о том, чтобы создать DataTable с SQL:
SELECT * FROM OrderDetails WHERE OrderID=OrderID;
, а затем, возможно, использовать для цикла, чтобы принять каждый PartID, создать еще один объект DataTable, чтобы найти PartName для этого, а затем дать это к переменная. Может потребоваться до 10 PartID для поиска, и я не хочу иметь такие переменные, как PartID1 PartID2 и т. Д.
Надеюсь, я смог эффективно передать свою проблему.
Благодаря
EDIT:
SQLCmd = "SELECT tblParts.PartID, tblParts.PartName, tblOrderDetails.Quantity, OrderDetails.OrderID FROM tblOrderDetails, tblParts "
SQLCmd = SQLCmd & "WHERE tblParts.PartID = OrderDetails.PartID AND OrderID=" & OrderID & ";"
Я немного смущен, это звучит как простой запрос? Выберите od.OrderDetailsID, p.Part_Name, od.Quantity, od.OrderID From OrderDetails od, Parts p Где p.partid = od.partid, возможно, даже просто базовый вид может обрабатывать. –
@mike - Да, я бы пошел на что-то подобное, хотя я бы предпочел указать соединение. Но что случилось с «Ордерами»? Это выглядит как неприятная де-нормализация. –
Вы не захотите хранить partid в заказах, так как это от одного до многих realtionship. – HLGEM