Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 server 获取元素名称_Sql Server - Fatal编程技术网

Sql server 获取元素名称

Sql server 获取元素名称,sql-server,Sql Server,我得到了如下4张表格: tbProjekt -------------- Id 每台机器都有ProjektId,它属于: tblMaszyna -------------- Id ProjektId tblElement -------------- Id Name 在此表中,我将元素与机器关联: tblMaszElem -------------- Id IdElem IdMach 我想从属于指定ProjectId的机器的tblement中获取这些元素的名称。那么,对于Project

我得到了如下4张表格:

tbProjekt
--------------
Id
每台机器都有ProjektId,它属于:

tblMaszyna
--------------
Id
ProjektId


tblElement
--------------
Id
Name
在此表中,我将元素与机器关联:

tblMaszElem
--------------
Id
IdElem
IdMach
我想从属于指定ProjectId的机器的tblement中获取这些元素的名称。那么,对于Projectd10,我该如何实现呢

select e.Name
from tbElement e
inner join tbMaszElem me on me.IdElem = e.Id
inner join tbMaszyna m on m.Id = me.IdMach
inner join tbProject p on p.Id = m.ProjektId
where
    p.Id = 10

这应该可以。这将选择tbElement表中与项目ID为10的项目关联的机器关联的所有条目的名称列。

请检查此示例及其注释

select 
    te.name 
from 
    tblMaszElem tmem
inner join tblElement te on te.id = tmem.IdElem
inner join tblMaszyna tmzy on tmzy.id = tmem.IdMach
--inner join tbProjekt tp on tp.id = tmzy.ProjektId --i think this should be avoidable
where 
    tp.id = 10

亲爱的,你遗漏了一些东西,tblMaszyna与其他表格的链接是什么。tbProjekt在它使用的地方。在tblMaszElem中,什么是Idelem,idmach?为了避免连接,它需要使用
WHERE tmzy.ProjektId=10