mysql查询

             MYSQL连接查询,虽然觉得已经是很普遍的用法,但还是记录下来,以供他人查询及方便自己复制粘贴:)

TABLE1
 字段值 属性 长度
 id varchar 10
 birthday char 8

wangwu19890101
 zhangsan 19870501
 lisi 19910101

TABLE2
 字段值  属性  长度
 auther varchar 10
 book_name varcahr 20
 end int 5

 zhangsan actou 100
 zhangsan pitcut 5
 zhangsan tushi 89
 wangwu php 1000
 wangwu mysql 1000
 zhangsan java 177

select  * from table1 left join table2 on table1.id=table2.auther where 1<2

 id birthday autherbook_name end 
 wangwu 19890101 wangwu php 1000
 wangwu 19890101 wangwu mysql 1000
 zhangsan 19870501 zhangsan actou 100
 zhangsan 19870501 zhangsan pitcut 5
 zhangsan 19870501 zhangsan tushi 89
 zhangsan 19870501 zhangsan java177 
 lisi 19910101 nullnull null 

*left join 就是从左边的表记录中对应在右边中查询,也称呼为左外连接。其结果就是左表的值U(左表的值∩右表的值)

select * from table1,table2 where  table1.id=table2.auther

 id birthday autherbook_name end 
 wangwu 19890101 wangwu php 1000
 wangwu 19890101 wangwu mysql 1000
 zhangsan 19870501 zhangsan actou 100
 zhangsan 19870501 zhangsan pitcut 5
 zhangsan 19870501 zhangsan tushi 89
 zhangsan 19870501 zhangsan java177 

*上面这种连接也称为内连接,其结果为两个表的交集。

select * from table1 natual left join  table2

*称为自然连接。一般较少使用。(自然连接为联合两个表中具有相同列名、相同类型和相同值的行)

但我测试发现结果是table1*table2.

查询设置条件

where if(length(month)=1,concat(year,"0",month),concat(year,month))>='200508' and if(length(month)=1,concat(year,"0",month),concat(year,month))<='200603'

通过length判断字段长度来决定字段处理的原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值