Mysql多表查詢(兩張獨立表,一張關係表)

來源:互聯網
上載者:User

標籤:

一、資料庫設計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,則可以使用外聯查詢,不同的是串連的表組和後輸出左表(右表)中不合格記錄,如下

 

Mysql多表查詢(兩張獨立表,一張關係表)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.