我对SQL还不熟悉。在遇到这个问题之前,我一直在我的项目上取得良好的进展。我试图在网上搜索这类问题,但我找不到任何具体的问题,或者我在搜索中没有使用正确的关键字。
我有三张与这个问题有关的表格。显然,我没有任何类型的“描述表”命令可以复制输出。我使用joins的其他查询正在按预期工作。
表1-“场址”
ID int auto-increment key, site_code short text, site_name short text, more but not relevant.表2-“枢纽”
ID int auto-increment key, HUB int (lookup from Sites.ID), more but not relevant.表3- "DialPlan“
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。
我的搜索查询是:
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,每个列有多个点,我不知道它是用来做什么的。有人有什么想法吗?
发布于 2015-12-17 00:03:05
好的,我找到了答案,这叫做内部查询。实际上,有两个内部查询。我张贴这篇文章是为了让其他人从中受益。从同一表上的两个字段引用第一个表的问题是,SQL不能确定第二个调用意味着新的搜索。因此,必须执行内部查询才能解决此问题。这是密码。作为一个访问管理员,我一直能够轻松地获得这种结果,但我落后于SQL的权力曲线。这是工作代码示例。
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”。我希望这能帮上忙。
发布于 2015-12-15 19:39:40
当您使用AS子句时,您只是为您的表赋予该列一个标题。它不会从别名中填充数据来代替您正在混叠的数据。
如果您想列出Hubs.hub的数据,您应该选择Hubs.hub,然后给出您想要使用的标题作为mytitle。
此外,您还需要最后一个联接,因为您的表已经连接了。
另外,描述命令是DESC,它应该能工作.DESC站点
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.IDhttps://stackoverflow.com/questions/34297643
复制相似问题