標籤:
一、資料庫設計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多表查詢(兩張獨立表,一張關係表)