基于SQL中两个不同表的条件创建新列

基于SQL中两个不同表的条件创建新列,sql,subquery,case,inner-join,Sql,Subquery,Case,Inner Join,我有两个表,我正在形成一个查询,用一个显示客户类型(免费/高级)的新列提取数据 我已经附上了图片,在一个表中有关于姓名的信息,在另一个表中我们有付款信息。 我希望结果以第三列类型的形式显示,并且基于表B中的付款信息,它应该显示Premium else Null。 我正在尝试使用CASE&JOIN,但我无法制定查询。请帮助我知道,至少支付过一次的客户是“高级”客户,其他客户是“免费”客户。如果是,您可以使用exists和case表达式: select a.* case when exist

我有两个表,我正在形成一个查询,用一个显示客户类型(免费/高级)的新列提取数据 我已经附上了图片,在一个表中有关于姓名的信息,在另一个表中我们有付款信息。 我希望结果以第三列类型的形式显示,并且基于表B中的付款信息,它应该显示Premium else Null。
我正在尝试使用CASE&JOIN,但我无法制定查询。请帮助

我知道,至少支付过一次的客户是“高级”客户,其他客户是“免费”客户。如果是,您可以使用
exists
case
表达式:

select a.*
    case when exists (select 1 from tableb b where b.userid = a.userid)
        then 'Premium'
        else 'Free'
    end as type
from tablea a

据我所知,至少支付过一次款项的客户是“高级”客户,其他客户是“免费”客户。如果是,您可以使用
exists
case
表达式:

select a.*
    case when exists (select 1 from tableb b where b.userid = a.userid)
        then 'Premium'
        else 'Free'
    end as type
from tablea a

嗯。我想您希望
类型
基于
b
中是否存在匹配行:

select a.*,
       (case when exists (select 1 from b where b.user_id = a.user_id)
             then 'Premium' else 'Free'
        end) as type
from a;

嗯。我想您希望
类型
基于
b
中是否存在匹配行:

select a.*,
       (case when exists (select 1 from b where b.user_id = a.user_id)
             then 'Premium' else 'Free'
        end) as type
from a;