MySQL联合查询分页
生活随笔
收集整理的這篇文章主要介紹了
MySQL联合查询分页
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有兩個表table_A, table_B:
pro:
| 1 | pro1 | 101 | 2017-5-1 |
| 2 | pro2 | 103 | 2017-3-1 |
| 3 | pro3 | 103 | 2017-2-3 |
| 4 | pro6 | 116 | 2017-6-3 |
pro_users:
| 1 | pro4 | 123 |
| 2 | pro1 | 132 |
| 3 | pro6 | 103 |
描述:
表pro為用戶創建項目的信息表,表pro_users為與項目相關聯的項目-用戶表。
需求:
需要查詢表A中某一創建者(例如:creator=103)創建的項目信息,以及和此用戶相關聯的項目信息,并分頁實現。
MySQL實現:
SELECT * FROM (SELECT * FROM pro WHERE id IN(SELECT id FROM pro WHERE creator=103UNION SELECT pro_id FROM pro_users WHERE user_id=103)) tbl LIMIT 100,10;查詢結果:
| 2 | pro2 | 103 | 2017-3-1 |
| 3 | pro3 | 103 | 2017-2-3 |
| 4 | pro6 | 116 | 2017-6-3 |
聯合查詢容易出的錯誤:
ERROER:The used SELECT statements have a different number of columns
原因:
union 是聯合查詢的意思,故要求查詢結構有著相同的結構,比如select a,b from TA union select 1,2,3,4,5 from Tb 肯定報錯!就算TA 與TB結構相同 但注意這里只取Ta的查詢結果a,b 也就是列結構只有2個 而后面的Tb取的結構有5個自然報錯。
總結
以上是生活随笔為你收集整理的MySQL联合查询分页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 全关联查询_Mysql 关联
- 下一篇: MySQL联合查询及取别名