Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从这些表中编写sql查询_Sql_Sql Server 2005 - Fatal编程技术网

如何从这些表中编写sql查询

如何从这些表中编写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

首先,我不是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,整型,不为空 我试过

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'