【问题标题】:Issue with subquery in same table同一张表中的子查询问题
【发布时间】:2021-06-05 06:51:13
【问题描述】:

我是 sql 新手,在这种情况下我需要使用子查询的帮助。

在这种情况下,我需要获取 Amanda 和 UAmanda 下的所有 customerId。但现在我只有这个 customerId 100456。

我如何使用这个 customerId 100456 组合子查询来获取 Amanda 和 UAmanda 下的所有数据。

下面是表格

Customer_Id Login_Name
100456 Amanda
101287 UAmanda
102458 Oliver
103658 Louis

这是我的子查询

select customer_id,login_name
from
(select tc.customer_id, tc.login_name from t_customers tc where tc.login_name = login_name)
where t_customers where customer_id = 100456;

但它只返回我的 Amanda 和 100456 其他 UAmanda 没有返回。

谁能帮我解决这个问题?

这是我想要的预期结果

Customer_Id Login_Name
100456 Amanda
101287 UAmanda

【问题讨论】:

  • 请包含您正在使用的实际查询。

标签: java mysql sql subquery


【解决方案1】:
SELECT customer_id, login_name FROM t_customers WHERE login_name LIKE '%Amanda';

【讨论】:

  • 我的答案有效我想展示 LIKE 的用法,但您的问题的严格答案是来自@pcsutar 的答案,它不会像我一样返回 xAmanda ...您的最终选择取决于您的实际需要。
【解决方案2】:

如果您想获取 Amanda 和 UAmanda 下的所有 customerId,那么我认为不需要子查询。您可以使用以下查询获得结果:

select customer_id, login_name
from t_customers
where login_name in ('Amanda', 'UAmanda');

【讨论】:

    【解决方案3】:

    鉴于您说您拥有的唯一数据是customer_Id,我相信您需要以下内容:

    select * 
    from customers
    where login_name like (
        select Concat('%',Login_Name,'%') 
        from customers
        where Customer_Id=100456
    )
    

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 2019-05-08
      • 2020-03-31
      • 2013-07-19
      • 1970-01-01
      相关资源
      最近更新 更多