Mysql多表查询(两张独立表,一张关系表)
生活随笔
收集整理的這篇文章主要介紹了
Mysql多表查询(两张独立表,一张关系表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、數據庫設計 1、三個數據表長這樣 其中user表記錄用戶信息,cat主要記錄男女性別,mete表是用戶id和性別id的對應關系 2、具體數據如下 二、查詢目標 查詢出所有性別為“男”的用戶的“姓名”,如下記錄兩種不同形式的查詢 1、單純的條件查詢 SQL: select user.value from user where user.uid in (select mete.uid from mete where mete.cid=1)
?
結果: 語句解釋: 先使用select?mete.uid?from?mete?where?mete.cid=1語句在mete表中,查找到所有“男”的uid(這里默認我們已經知道cid=1代表男性),再通過條件查詢,與上句查詢結果進行比對,從而顯示出user表中的所有男性名字。 2、使用連接查詢,條件顯示所有用戶的姓名和對應的性別 SQL: select U.value,C.value from mete as M join cat as C on C.cid=M.cid join user as U on U.uid=M.uid?
結果: 語句解釋:使用到了內聯查詢,只輸出包含連接條件的數據行,從左往右看,可以理解為先將mete表與cat表連接,通過條件C.cid=M.cid,形成了一個性別類型匹配的新表,新表再和user表連接,通過U.uid=M.uid ,形成了一個姓名匹配的表,此時這三張表就聯合形成了一個性別類型、名稱類型一一對應的表,長得是這樣, 再通過select語句,選出了我們想要的姓名和性別對應的表。 注:如上是內聯查詢,只輸出滿足所有條件的數據,也可以通過外聯查詢,不對數據過濾,只對數據組合的新表 SQL: select * from mete as M left join cat as C on C.cid=M.cid left join user as U on U.uid=M.uid 語句解釋:在join前加left/right,則可以使用外聯查詢,不同的是連接的表組和后輸出左表(右表)中不符合條件的記錄,如下?
轉載于:https://www.cnblogs.com/tilv37/p/5199139.html
總結
以上是生活随笔為你收集整理的Mysql多表查询(两张独立表,一张关系表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis的分布式解决方式--codis
- 下一篇: web.config配置数据库连接