如何从多个表中查询列?
Posted
技术标签:
【中文标题】如何从多个表中查询列?【英文标题】:How do I query columns from multiple tables? 【发布时间】:2020-08-02 03:17:57 【问题描述】:我需要编写一个SELECT
查询来报告表中的特定数据。我的问题是我需要报告的一列被规范化到另一个表中。
我需要报告位于表 Consultant
中的 C/SRep。 FK ConsultantID
位于表 Clients
内。
SELECT
ClientName, Country, City, State, Province, Zip,
[Address 1], [Address 2], InvestorContact, ConsultantID
FROM
Clients
INNER JOIN
Consultant ON ConsultantID = C/SRep
以上几行是我尝试过的一件事。
结果:
消息 209,第 16 级,状态 1,第 3 行 不明确的列名称“ConsultantID”
消息 207,第 16 层,状态 1,第 3 行 列名“C”无效
消息 207,第 16 层,状态 1,第 3 行 列名“SRep”无效
消息 209,第 16 级,状态 1,第 1 行 不明确的列名称“ConsultantID”
【问题讨论】:
【参考方案1】:在编写查询时对所有列引用进行限定,您将永远不会遇到这个问题。当然,我不知道数据,但想法是:
SELECT cl.ClientName, cl.Country, cl.City, cl.State, cl.Province, cl.Zip, cl.[Address 1], cl.[Address 2],
co.InvestorContact, co.ConsultantID
FROM Clients cl JOIN
Consultant co
ON cl.ConsultantID = co.ConsultantID;
我只是弥补了列的来源。
【讨论】:
如何限定所有列引用?感谢您的回复! @JMBurnworth 。 . .通过包含列来自的表的别名。 SELECT Clients.ClientName、Clients.Country、Clients.City、Clients.State、Clients.Province、Clients.Zip、Clients.[Address 1]、Clients.[Address 2]、Clients.InvestorContact , Consultant.[C/SRep] FROM Clients JOIN Consultant ON Clients.ConsultantID=Consultant.ConsultantID; @Sujitmohanty30 是的。谢谢你的检查。正在尝试获取有关将数据类型 nvarchar 转换为数字时出错的帮助 x.x @DaleK 我已经支持 GordonLinoff 的回答,但不知道如何接受。我还在学习这个网站的布局,当我试图找到解决问题的方法时非常累。我现在已经接受了答案。感谢您的检查。【参考方案2】:您可能还想学习一个基本的 sql 课程,就像这里的 https://www.w3schools.com/sql/ 您提出的问题表明您缺少一些使用 sql 的相关知识
【讨论】:
以上是关于如何从多个表中查询列?的主要内容,如果未能解决你的问题,请参考以下文章