如何从这些表中编写sql查询
首先,我不是SQL开发人员。因此,我需要帮助从下面三个表中检索一些信息 我想为那些订购了产品代码为401.1201的产品的人获取姓名、订购日期和产品代码 如何编写SQL查询以从表中检索信息 dbo.TBL材料 MaterialIdPK,int,不为空 CanBeOrderedbit,不为空 Namenvarchar200,不为空 价格小数点18,2,不为空 ProductCodenvarchar50,不为空 dbo.TBL材料订单 MaterialOrderIdPK,int,不为空 MembershipUserIDUniqueIdentifier,不为null FirstNamenvarchar50,不为空 LastNamenvarchar100,不为空 OrderDateTime,不为空 dbo.tblMaterialOrderItem MaterialOrderItemIdPK,int,不为空 MembershipUserIDUniqueIdentifier,不为null ItemsContint,不为空 ItemPriceint,不为null MaterialOrder\u MaterialOrderIdFK,int,不为空 Material\u MaterialdFk,整型,不为空 我试过如何从这些表中编写sql查询,sql,sql-server-2005,Sql,Sql Server 2005,首先,我不是SQL开发人员。因此,我需要帮助从下面三个表中检索一些信息 我想为那些订购了产品代码为401.1201的产品的人获取姓名、订购日期和产品代码 如何编写SQL查询以从表中检索信息 dbo.TBL材料 MaterialIdPK,int,不为空 CanBeOrderedbit,不为空 Namenvarchar200,不为空 价格小数点18,2,不为空 ProductCodenvarchar50,不为空 dbo.TBL材料订单 MaterialOrderIdPK,int,不为空 Member
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
tblMaterial.Name,
tblMaterialOrder.OrderDate,
tblMaterial.ProductCode
FROM
tblMaterial
JOIN tblMaterialOrderItem
ON tblMaterial.MaterialId=tblMaterialOrderItem.Material_MaterialId
JOIN tblMaterialOrder
ON tblMaterialOrder.MaterialOrderId=tblMaterialOrderItem.MaterialOrder_MaterialOrderId
WHERE
tblMaterial.ProductCode='401.1201'
试试这个未经测试的脚本:
select a.name, b.orderdate, a.productcode
from tblMaterial a left outer join tblMaterialOrderItem b
on a.MaterialId = b.Material_MaterialId
left outer join tblMaterialOrder c
on c.MaterialOrder_MaterialOrderId = b.MaterialOrderId
where a.productcode = '401.1201'
这是学校作业吗?您是否尝试过编写SQL,以便与我们共享,以便我们为您指明正确的方向?我已经尝试了很多,这是我最好的尝试:从dbo.tblMaterialOrder mo中选择*如果存在,从dbo.tblMaterialOrderItem中选择MembershipUserId,其中dbo.tblMaterialOrderItem.Material\u MaterialId=从dbo.tblMaterial中选择MaterialId,其中ProductCode='401.1201'这是另一个不起作用的尝试:从dbo.tblMaterialOrderItem中选择*,dbo.tblMaterialOrderItem,dbo.tblMaterial其中dbo.tblMaterialOrderItem.Material_MaterialId='248'和dbo.tblMaterialOrderItem.MaterialOrderId=dbo.tblMaterialOrder.MaterialOrderId从您的尝试中,您似乎可以阅读哪些是理解数据库表中存储的数据的基础,而这些数据之间存在关系桌子。
SELECT
M.NAME
,M.MATERIALID
,O.ORDERDATE
FROM MATERIAL M
LEFT JOIN ORDERITEM OI ON M.MATERIALID = OI.MATERIAL_MATERIALID
LEFT JOIN ORDER O ON OI.MaterialOrder_MaterialOrderId = O.MaterialOrderId
WHERE M.MATERIALID = '401.1201'
select a.name, b.orderdate, a.productcode
from tblMaterial a left outer join tblMaterialOrderItem b
on a.MaterialId = b.Material_MaterialId
left outer join tblMaterialOrder c
on c.MaterialOrder_MaterialOrderId = b.MaterialOrderId
where a.productcode = '401.1201'