如何从多个表中查询列?

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 的相关知识

【讨论】:

以上是关于如何从多个表中查询列?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确使用连接/子查询从多个表中选择数据? (PHP-MySQL)

如何使用 Laravel 查询构建器跨表选择多个列?

如何从 sqlite 表中选择文本中的多个最大值

sql如何在多个表中查询一个表的全部列

从多个表中获取所有列的最大值

如何从单个表中选择多个列值相同的行