【问题标题】:How to Join the two values in the same table in sql?如何在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

标签: mysql sql join


【解决方案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) 等字段。
猜你喜欢
  • 2013-07-08
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多