現在我們先來看在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,相當於一個人站在中間,左右手拉手,兩個人自然是沒有感覺的,其實中間一個人起到了連結的左右,他的左手連通著一個人的右手,右手連通著一個人的左手,建立了關聯,於是乎因此我們選擇一個與兩個表都有共同項的表作為中間人,差不多就是這個意思。