首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有引用的SQL联接

带有引用的SQL联接
EN

Stack Overflow用户
提问于 2015-12-15 19:22:16
回答 2查看 922关注 0票数 0

我对SQL还不熟悉。在遇到这个问题之前,我一直在我的项目上取得良好的进展。我试图在网上搜索这类问题,但我找不到任何具体的问题,或者我在搜索中没有使用正确的关键字。

我有三张与这个问题有关的表格。显然,我没有任何类型的“描述表”命令可以复制输出。我使用joins的其他查询正在按预期工作。

表1-“场址”

代码语言:javascript
复制
ID int auto-increment key, site_code short text, site_name short text, more but not relevant.

表2-“枢纽”

代码语言:javascript
复制
ID int auto-increment key, HUB int (lookup from Sites.ID), more but not relevant.

表3- "DialPlan“

代码语言:javascript
复制
ID int auto-increment key, site int (lookup from Sites.ID), HUB int (lookup from Hubs.HUB), more but not relevant.

当查看对"DialPlan“的查询时,我需要看到"DialPlan.site”被该特定int的"Sites.site_code“替换。对于特定的int,我需要看到"DialPlan.HUB“被"Sites.site_code”替换。没有联接的表输出示例:

DialPlan: 28,29,2,203最后一个数字是不相关的。Sites.ID = 29,Sites.site_name = BENN。Hubs.ID = 2,Hubs.HUB = 27,Sites.ID = 27,Sites.site_name =吹嘘。所以,当我使用连接时,我需要看到的输出是: 28,BENN,BRAG,203。我不明白,我得到: 28,BENN,BENN,203。

我的搜索查询是:

代码语言:javascript
复制
select 
    Sites.site_code, Sites.site_name, Sites.site_code as Hubs.HUB, 
    DialPlan.OC
from 
    DialPlan
left join 
    Sites on DialPlan.site = Sites.ID
left join
    Hubs on DialPlan.HUB = Hubs.ID
left join
    Hubs on Hubs.HUB = Sites.ID;

我尝试使用"AS“更改字段3,甚至尝试使用"=”和其他一些东西。如果我尝试将字段3作为"Sites.site_code“,则输出与第一个"Sites.site_code”查找相同。我不知道该如何进行。我已经尝试了太多的事情了,我甚至不知道我到底尝试了什么。我看到一个thread,每个列有多个点,我不知道它是用来做什么的。有人有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-17 00:03:05

好的,我找到了答案,这叫做内部查询。实际上,有两个内部查询。我张贴这篇文章是为了让其他人从中受益。从同一表上的两个字段引用第一个表的问题是,SQL不能确定第二个调用意味着新的搜索。因此,必须执行内部查询才能解决此问题。这是密码。作为一个访问管理员,我一直能够轻松地获得这种结果,但我落后于SQL的权力曲线。这是工作代码示例。

代码语言:javascript
复制
SELECT Sites.site_code, Sites.site_name,
    ( SELECT site_code FROM Sites WHERE ID =
        ( SELECT HUB FROM Hubs WHERE DialPlan.HUB = Hubs.ID )
    ),
DialPlan.OC
FROM DialPlan
LEFT JOIN Sites
ON DialPlan.site = Sites.ID;

输出是我正在寻找的,“本·本宁吹嘘203”。我希望这能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2015-12-15 19:39:40

当您使用AS子句时,您只是为您的表赋予该列一个标题。它不会从别名中填充数据来代替您正在混叠的数据。

如果您想列出Hubs.hub的数据,您应该选择Hubs.hub,然后给出您想要使用的标题作为mytitle。

此外,您还需要最后一个联接,因为您的表已经连接了。

另外,描述命令是DESC,它应该能工作.DESC站点

代码语言:javascript
复制
select 
 Sites.site_code, Sites.site_name, Hubs.HUB as Site, DialPlan.OC
from 
  DialPlan
left join 
  Sites on DialPlan.site = Sites.ID
left join
  Hubs on DialPlan.HUB = Hubs.ID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34297643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档