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          |

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

 

 

代码为: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)
作为一个条件,作为单表查询的条件,进行查询就是了

语句没有问题吗?可以执行?

和这个是等效的 :[code="java"]SELECT t1.* FROM table1 t1,table2 t2 WHERE
t1.t1_id =t2.table1_id and (t2.t2_name like '%wangwu%' or t1.t1_name like '%zhansan%') ;[/code]

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

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表此时是无法使用的

有经常做EXCEL和数据库交互的吗?
把数据库中的数据,拷贝到EXCEL中的。

DbTools工具下载:
http://cuishuangjia.iteye.com/admin/blogs/1867417
支持ORACLE,MYSQL,SQLSERVER,POSTGRE四种数据库相互转换功能

功能:
1。将数据库中的表结构和数据保存到EXCEL中。
2。将EXCEL中的数据,同步到数据库中。
3。当表结构发生变化时,数据不会丢失。
4。根据EXCEL中的表结构,生成建表语句SQL文。
5。多用户使用该软件时,可以随时记录某个用户对数据库的操作。
6。可以为进行压力测试,自动生成数据。
7。导出表结构,根据表结构和数据库中的表结构进行差分。
8。导出DB结构,和现有环境DB进行表结构差分
9。导出用户自定义表结构,根据表结构导入,导入数据前对EXCEL校验进行数据库验证和业务逻辑验证
数据库第三方工具交流企鹅群:184715368