为了账号安全,请及时绑定邮箱和手机立即绑定

有谁可以解释一下这段查询的意思?

有谁可以解释一下这段查询的意思?

慕虎7371278 2022-10-26 23:19:22
SELECT * FROM table1 t1  WHERE 1=1  and t1_id in (select table1_id from table2 t2 where 1=1  and (t2.t2_name like '%wangwu%'  or  t1.t1_name like '%zhansan%') );table1 +---------------------+| t1_id |   t1_name   |+---------------------+| 100   |  zhansan     |+---------------------+table2 +----------------------------------+| t2_id |   t2_name   |   table1_id |+--------------------------------------+| 200   |  wangwu   |   100          |+---------------------------------------+
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

代码为:SELECT * FROM table1 t1  WHERE 1=1  and t1_id in (select table1_id from table2 t2,table t1 where t1_id=t2_id and t2.t2_name like '%wangwu%'  or  t1.t1_name like '%zhansan%');根据你给出的可以知道,这是个两张的表的联合后模糊查询,意思 就是通过链接 后,把表一中名字(即t1_name='%zhansan%')中 含有“zhansan” 或把表二中名字(即t2_name='%wangwu%')中 含有 “wangwu” 可以这两种,两者若有一个成立就可以得到一个表一的编号(t1_id),此时就得到一个或多个id,然后我们就在根据得到的id,把这个id(注释:红色部分就是求得id)
作为一个条件,作为单表查询的条件,进行查询就是了

查看完整回答
反对 回复 2022-11-01
?
达令说

TA贡献1821条经验 获得超6个赞

select table1_id from table2 t2 where 1=1  and (t2.t2_name like '%wangwu%'  or  t1.t1_name like '%zhansan%')
其中t1.t1_name like 中会报错吧,t1表此时是无法使用的

查看完整回答
反对 回复 2022-11-01
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

查出table1表中,包含 table2表中t2_name包含:‘wangwu’ 的table1_id及table1表中t1_name包含:‘zhansan’的

查看完整回答
反对 回复 2022-11-01
  • 3 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信