【发布时间】:2012-02-01 14:34:22
【问题描述】:
首先,我不是 SQL 开发人员。因此,我需要帮助才能从以下三个表格中检索一些信息。
我想获得names、order date 和product code 用于那些使用product code = 401.1201 订购产品的人
如何编写 SQL 查询以从表中检索信息?
dbo.tblMaterial
- MaterialId(PK, int, not null)
- CanBeOrdered(位,非空)
- 名称(nvarchar(200),不为空)
- 价格(十进制(18,2),不为空)
- ProductCode(nvarchar(50), not null)
dbo.tblMaterialOrder
- MaterialOrderId(PK, int, not null)
- MembershipUserId(uniqueidentifyer, not null)
- 名字(nvarchar(50),不为空)
- 姓氏(nvarchar(100),不为空)
- OrderDate(日期时间,非空)
dbo.tblMaterialOrderItem
- MaterialOrderItemId(PK, int, not null)
- MembershipUserId(uniqueidentifyer, not null)
- ItemsCount(int, not null)
- ItemPrice(int, not null)
- MaterialOrder_MaterialOrderId(FK, int, not null)
- Material_MaterialId(FK, int, not null)
我试过了……
Select * From dbo.tblMaterialOrder mo Where Exists (Select MembershipUserId From
dbo.tblMaterialOrderItem Where dbo.tblMaterialOrderItem.Material_MaterialId =
(Select MaterialId From dbo.tblMaterial Where (ProductCode = '401.1201')))
和
Select * from dbo.tblMaterialOrder, dbo.tblMaterialOrderItem, dbo.tblMaterial
Where
dbo.tblMaterialOrderItem.Material_MaterialId = '248' And
dbo.tblMaterialOrderItem.MaterialOrder_MaterialOrderId =
dbo.tblMaterialOrder.MaterialOrderId
没有成功。
【问题讨论】:
-
这是学校的工作吗?您是否尝试过编写可以与我们分享的 SQL,以便我们为您指明正确的方向?
-
我尝试了很多,这是我最好的尝试:
-
Select * From dbo.tblMaterialOrder mo Where Exists (Select MembershipUserId From dbo.tblMaterialOrderItem Where dbo.tblMaterialOrderItem.Material_MaterialId = (Select MaterialId From dbo.tblMaterial Where (ProductCode = '401.1201'))跨度>
-
这是另一个不起作用的尝试: Select * from dbo.tblMaterialOrder, dbo.tblMaterialOrderItem, dbo.tblMaterial Where dbo.tblMaterialOrderItem.Material_MaterialId = '248' And dbo.tblMaterialOrderItem.MaterialOrder_MaterialOrderId = dbo.tblMaterial .MaterialOrderId
-
从您的尝试看来,您似乎可以阅读有关 JOINs in SQL 的内容,这对于理解存储在表之间存在关系的数据库表中的数据至关重要。
标签: sql sql-server-2005