萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MYSQL 再談JOIN 關聯查詢用法

MYSQL 再談JOIN 關聯查詢用法

JOIN 關聯查詢是mysql開發應用中多表之間一起查詢非常重要的一個sql命令了,下面我給各位整理了關於JOIN 關聯查詢的一些小例子與經驗分享,希望對各位會有所幫助。

現在我們先來看在SQL 關聯查找JOIN,

這是我初期的一大問題,兩個表之間怎麼建立關聯,實際上,有個東西叫做JOIN,然後還有INNER JOIN,RIGHT JOIN,LEFT JOIN

我基本上用的都是LEFT JOIN,那麼RIGHT JOIN大家懂得=A=其他我也沒用過

不同的參考:

JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行

這裡舉一個M-Show用到的栗子:

 代碼如下 復制代碼 SELECT show_person.uid, show_person.nickname, show_category.category,show_category.id FROM show_person Left JOIN show_category on show_person.category=show_category.id WHERE show_category.id=$category ORDER BY show_person.uid

把person和category建立關聯,主表(自造詞= =)是person,所以person完整輸出,即使沒有category定義。

SELECT部分用表.字段,如果一個表要全部選中,字段選擇用 * ,但是據說效率會變低


現在再次用到又學到了點新的東西。

首先還是這段代碼(還是的理由是因為上一篇文章):

 代碼如下 復制代碼 SELECT pr_rates.pid,count(pr_rates.ip),pr_works.title,pr_works.realname,pr_college.name FROM pr_works RIGHT JOIN pr_rates ON pr_rates.pid=pr_works.pid LEFT JOIN pr_college ON pr_works.college=pr_college.id GROUP BY pid ORDER BY count(pr_rates.ip) DESC

為什麼會有Left Join Right Join,相當於一個人站在中間,左右手拉手,兩個人自然是沒有感覺的,其實中間一個人起到了連結的左右,他的左手連通著一個人的右手,右手連通著一個人的左手,建立了關聯,於是乎因此我們選擇一個與兩個表都有共同項的表作為中間人,差不多就是這個意思。

copyright © 萬盛學電腦網 all rights reserved