mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0

查看:104
本文介绍了mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

select
if( EXISTS select
 * from l
 where t.name = l.name,1,0)
from t

如果t表里存在l表里的name 就显示1 否则显示0;

解决方案

如果t表数据量不大,用下面子查询的方式

select 
  t.name,
  if((select count(*) from l where l.name = t.name)> 0, 1, 0)
from t

表关联的方式,在大数据的时候效率会更高一些

select 
  t.name,
  IFNULL(t2.cnt, 0)
from t left join (
  select name, 1 as cnt
  from l
  group by name
) t2 on t.name = t2.name

这篇关于mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆