如何在sql中将同一张表中的两个值连接起来?

Posted

技术标签:

【中文标题】如何在sql中将同一张表中的两个值连接起来?【英文标题】:How to Join the two values in the same table in sql? 【发布时间】:2022-01-04 08:13:17 【问题描述】:

- 示例表链接

我有一个表名为 Customer。在该表中,有几个属性,例如 customer_id、customer_name、address、country、bill_to_customer、account_start_date 等……所以我想从该表中获取计费客户名称、地址、国家/地区。在这里,customer_id 可能等于 bill_to_customer 或 customer_id 不等于 bill_to_customer_id。当我想获取计费客户详细信息时,它的作用是转到 bill_to_customer 值并过滤与 bill_to_customer 匹配的 customer_id 的数据并给出输出。如何编写 SQL 查询来执行此操作?

【问题讨论】:

您可以通过发布表定义、示例数据和预期输出(全部为文本)来改进这个问题。 请use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。在图像中包含图例/键和说明。无法搜索或剪切和粘贴图像。此外,链接死了。使用编辑功能插入图像/链接。使您的帖子自成一体。 How to AskHelp center 请在代码问题中给出minimal reproducible example。 【参考方案1】:

您可以使用您的 bill_to_customer 列对表 Customer 进行自联接。

类似这样的:

SELECT billing.name, billing.address, billing.country FROM Customer cust
INNER JOIN Customer billing ON cust.bill_to_customer = billing.customer_id
WHERE ...further conditions...

【讨论】:

顺便说一句,我的解决方案假设 bill_to_customer 列中始终存在一个值。如果不是这种情况,您可以将内连接更改为左连接并选择 COALESCE(billing.name, cust.name) 等字段。

以上是关于如何在sql中将同一张表中的两个值连接起来?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 LINQ sql 中将两个表与一个具有不同值的表连接起来?

如何将两个表与 SQL Server 中第二个表中引用同一列的两列连接起来

如何在 sql server 2008 的同一张表中使用计数和分组方式和自连接?

SQL中,如何将三个表中同一字段中的内容汇总到一个字段中?

如何使用 ssp.class.php 连接两个表

如何在一张表中添加两个查询?