【问题标题】:how to display data from different tables column into one table column如何将不同表列中的数据显示到一个表列中
【发布时间】:2012-10-02 07:51:44
【问题描述】:

我试图从 SQL2008 中一个数据库的不同表(同名)列中获取一个表列中的数据。

我使用不同的表主键列名创建了一个表(例如 - 我的新表看起来像

Location、Customer、Service、Channel、Monthlyperiod......这些表已经创建。我正在尝试获取其他表中的每个表列值。(例如 - 新位置表列中的现有 Lacation 表列值。

请帮助我。提前非常感谢。

【问题讨论】:

  • 您在哪一部分遇到了问题?
  • 你能添加你的表的方案吗?
  • MySQL 不是 sql server 2008。选择一个。
  • 你好朋友..感谢您的及时回复..抱歉我的问题不够清楚。我创建了一个包含 4 个不同列的表。 (位置、客户、服务和渠道)。我正在尝试在这些列下显示来自不同表特定列的记录(我在数据库中有位置、客户、服务和渠道表。)让我们从位置表中说,我需要选择位置 ID 并将其显示到我的新表的位置列中..我很抱歉,因为我是 SQL 新手。谢谢。
  • @user1706420,您的描述很难理解。请使用您正在使用的每个表的 SQL 定义更新您的问题,例如create table Service (ServiceID int ...)。样本数据和预期输出也会非常有帮助。

标签: mysql sql database sql-server-2008 relational-database


【解决方案1】:

嗨,在 sql server 中,你必须使用别名来做这些事情,比如你的查询中的例子

SELECT     Location =C.Location
           ,Customer =C.Customer
           ,Service =C.Service
           ,Location2=(SELECT B.Location FROM Table2 B  where     B.customerid=C.customerid)
    FROM   Customer C --  Use alais names 

【讨论】:

  • 您好 Kumar,感谢您的帮助。我想我通过以下查询找到了解决方案.......SELECT L.LocationCode, L.LocationName, C.CustomerCode, M.MaterialCode, CO.Date, SUM(CO.Amount) FROM CustomerOrderHistory (NOLOCK) CO, Material (NOLOCK) M, 客户 (NOLOCK) C, 位置 (NOLOCK) L WHERE CO.MaterialID = M.MaterialID AND CO.CustomerID = C.CustomerID AND CO.LocationID = L.LocationID GROUP BY L.LocationCode, L.LocationName, C.CustomerCode、M.MaterialCode、CO.Date
【解决方案2】:

不是很清楚,但看起来您想将一个表的内容插入到另一个具有相同架构的表中。

假设您的表有三列 Location Customer 和 Service,并且具有相同架构的表是 Customer 和 Customer1,那么将第一个表的所有行插入到第二个表中的操作如下:

INSERT INTO Customer1
SELECT     Location, Customer, Service
FROM         Customer

【讨论】:

  • 您好丹尼斯...感谢您的及时回复。
  • 你好丹尼斯..谢谢你的及时回复..抱歉我的问题不够清楚。我创建了一个包含 4 个不同列的表。 (位置、客户、服务和渠道)。我正在尝试在这些列下显示来自不同表的记录(我在数据库中有位置、客户、服务和渠道表。)让我们从位置表中说,我需要选择位置 ID 并将其显示到我的新表的位置列中。我很抱歉,因为我是 SQL 新手。谢谢。
  • 你的解释有两个问题:1)你说你需要display,但你也说你已经创建了一个table 4列。仅当您需要存储某些东西时才需要桌子。要显示组合来自 4 个表的数据的内容,您无需创建表 - 您只需使用 SELECT 语句即可。
  • 2) 当您需要显示组合来自不同表的列的数据时,您通常在 SELECT 语句中使用 JOIN。问题是仅仅说:“将列与这些名称组合”是不够的,您还需要指定如何组合这些列的规则。例如,如果您的 Customer 表包含 CustomerName、LocationID 和 ServiceID 列;您的 Location 表包含列 LocationID、LocationName;并且您的服务表包含 ServiceID、ServiceName,那么您可以使用以下 SELECT 显示所有列:
  • SELECT C.CustomerName, L.LocationName, S.ServiceName FROM Customer AS C LEFT OUTER JOIN Location AS L ON C.LocationID = L.LocationID LEFT OUTER JOIN Service AS S ON C.ServiceID = S .ServiceID
猜你喜欢
  • 2019-12-07
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多