具有多个表的ASP.net Gridview SQL查询(SQL问题不是ASP)

具有多个表的ASP.net Gridview SQL查询(SQL问题不是ASP),asp.net,sql,Asp.net,Sql,所以我学到了很多 然而,在这件事上我一直找不到任何帮助,我想知道哪个天才会首先回答:D 好的,我有一个gridview,像往常一样显示一个表的结果 但是,此表是存储其他表中大量ID号而不是项目名称的表之一。即 tbluser tblreg Tblac tblsite tblsite Fname--sname--regionaccess--accountaccess--basedloc--currentsite--active 测试------测试------1------1------1----

所以我学到了很多

然而,在这件事上我一直找不到任何帮助,我想知道哪个天才会首先回答:D

好的,我有一个gridview,像往常一样显示一个表的结果

但是,此表是存储其他表中大量ID号而不是项目名称的表之一。即

tbluser tblreg Tblac tblsite tblsite Fname--sname--regionaccess--accountaccess--basedloc--currentsite--active 测试------测试------1------1------1------正确

因此,这些数字是其他表中的ID号,我也可以引用它们,但是对于任何阅读它的人来说,这在gridview显示上没有任何意义

因此,我需要一个Sql Select语句,它连接或联接我认为是正确的词的相应表,并获取每个id号的名称,以便Gridview看起来像

Fname--sname--regionaccess--accountaccess--basedloc--currentsite--active test---test---Admin---AccessAll---T'Ton---T'Ton---true

有人能帮忙吗

编辑: 这是半工作的SQL,必须更改为内部联接,因为VS不接受它

选择用户。[名字],用户。姓氏,用户。登录,区域。区域名称,[配置文件选项]。配置文件描述,站点。站点名称作为所有者站点,站点。站点名称作为站点设置 从站点内部加入区域在区域上内部加入用户。RegionID=Users。[区域访问]在站点上。SiteID=Users.owningsite和Regions.RegionID=Sites.owningregionid和Sites.SiteID=Users。Currentsitesetting内部加入[Profile Options]在用户上。[帐户访问]=[Profile Options]。ProfileID


问题是它从其他表中收集名称很好,但不会显示users表中的所有记录,只显示具有相同ID的记录,从中获取名称。我认为您只需要按照您所说的,在selectcommand中加入这些表。这对我很有用:

SELECT DISTINCT
    tbluser.Fname as Firstname,
    tbluser.sname as Username (? or something)
    tblreg.? as ?
    <tablename>.<columnname> as <some custom name>
    ...
    (only select the things you want to display in the grid ofc.)

FROM tableWithIds
    LEFT JOIN tbluser
        ON tableWithIds.userid = tbluser.userid
    LEFT JOIN tblreg
        ON tableWithIds.someid = tblreg.someid
    LEFT JOIN <someothertable>
        ON tableWithIds.someid = someothertable.otherid
    ...
    (join all the tables by id)
左连接确保即使remoteid不存在,也能从TableWithID中获得所有结果。如果仅在远程id(例如userid)存在时才需要结果,请将所需表的左连接更改为内部连接。 SELECT DISTINCT可确保不会从所有联接中获得任何重复值。例如,如果您只想区分几个列,因为用户可以有多个站点,请使用以下选项:选择不同的用户名、姓氏。。。从中选择表中的其余部分


这就是您要找的吗?

很抱歉,表格式没有保留,前两个字段可以从tbluser获得,四个ID号来自其他4个表。您如何从数据库-SqlDataSource获取数据?SqlCommand?发布相关代码,这样您就可以准确地获得所需的帮助。通过Access Select命令,但这真的会改变SQL吗?当然,SQL的调用方式不会影响语句本身。