Notebookdong 2013-05-17 15:34 采纳率: 100%
浏览 225
已采纳

Mysql子查询

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

 

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          |

+---------------------------------------+

 

 

  • 写回答

6条回答 默认 最新

  • 123shiyao 2013-05-17 19:31
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置