MYSQL連接查詢,雖然覺得已經是很普遍的用法,但還是記錄下來,以供他人查詢及方便自己複製粘貼:)
字段值 | 屬性 | 長度 |
id | varchar | 10 |
birthday | char | 8 |
wangwu | 19890101 |
zhangsan | 19870501 |
lisi | 19910101 |
字段值 | 屬性 | 長度 |
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 | auther | book_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 | java | 177 |
lisi | 19910101 | null | null | null |
*left join 就是從左邊的表記錄中對應在右邊中查詢,也稱呼爲左外連接。其結果就是左表的值U(左表的值∩右表的值)
select * from table1,table2 where table1.id=table2.auther
id | birthday | auther | book_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 | java | 177 |
*上面這種連接也稱爲內連接,其結果爲兩個表的交集。
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判斷字段長度來決定字段處理的原則