中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)看書湖北網(wǎng)站seo

網(wǎng)站開發(fā)看書,湖北網(wǎng)站seo,wordpress注冊(cè)用戶,wordpress 制作側(cè)邊欄🎉歡迎您來到我的MySQL基礎(chǔ)復(fù)習(xí)專欄 ☆* o(≧▽≦)o *☆哈嘍~我是小小惡斯法克🍹 ?博客主頁:小小惡斯法克的博客 🎈該系列文章專欄:力扣刷題講解-MySQL 🍹文章作者技術(shù)和水平很有限,如果文中出…

?🎉歡迎您來到我的MySQL基礎(chǔ)復(fù)習(xí)專欄

☆* o(≧▽≦)o *☆哈嘍~我是小小惡斯法克🍹
?博客主頁:小小惡斯法克的博客
🎈該系列文章專欄:力扣刷題講解-MySQL
🍹文章作者技術(shù)和水平很有限,如果文中出現(xiàn)錯(cuò)誤,希望大家能指正🙏
📜 感謝大家的關(guān)注!???

?

目錄

🚀組合兩個(gè)表

?🚀總結(jié):關(guān)于on

?🚀超過經(jīng)理收入的員工


🚀組合兩個(gè)表

表:?Person

+-------------+---------+
| 列名         | 類型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
personId 是該表的主鍵(具有唯一值的列)。
該表包含一些人的 ID 和他們的姓和名的信息。

表:?Address

+-------------+---------+
| 列名         | 類型    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
addressId 是該表的主鍵(具有唯一值的列)。
該表的每一行都包含一個(gè) ID = PersonId 的人的城市和州的信息。

編寫解決方案,報(bào)告?Person?表中每個(gè)人的姓、名、城市和州。如果?personId?的地址不在?Address?表中,則報(bào)告為?null?。

以?任意順序?返回結(jié)果表。

結(jié)果格式如下所示。

示例 1:

輸入: 
Person表:
+----------+----------+-----------+
| personId | lastName | firstName |
+----------+----------+-----------+
| 1        | Wang     | Allen     |
| 2        | Alice    | Bob       |
+----------+----------+-----------+
Address表:
+-----------+----------+---------------+------------+
| addressId | personId | city          | state      |
+-----------+----------+---------------+------------+
| 1         | 2        | New York City | New York   |
| 2         | 3        | Leetcode      | California |
+-----------+----------+---------------+------------+
輸出: 
+-----------+----------+---------------+----------+
| firstName | lastName | city          | state    |
+-----------+----------+---------------+----------+
| Allen     | Wang     | Null          | Null     |
| Bob       | Alice    | New York City | New York |
+-----------+----------+---------------+----------+
解釋: 
地址表中沒有 personId = 1 的地址,所以它們的城市和州返回 null。
addressId = 1 包含了 personId = 2 的地址信息。

思路:

1.觀察到問題中有一個(gè)關(guān)鍵:如果?personId?的地址不在?Address?表中,則報(bào)告為?null?。

2.很顯然,通過這句話無論 person 是否有地址信息都要返回信息,那么返回null,其實(shí)就是因?yàn)闆]有對(duì)應(yīng)的城市和州

3.既然都要返回人的PersonId ,FirstName, LastName,要左表的全部信息,所以使用左查詢

4.讓person作左表,Address 作右表

5.我們分析出這一步還不算完成,我們還要知道左外連接on的具體知識(shí),請(qǐng)看下面

6..很明顯,在person表中,personId是它的主鍵,Address表中addressId對(duì)應(yīng)了personId

7..那么我們的on后面的條件肯定是從personld這個(gè)字段來建立關(guān)系,關(guān)系就是p.PersonId = a.PersonId,由此可以返回出address表中的數(shù)據(jù)

8.select * from?Person as p left join Address as a?on 條件

9.把*優(yōu)化一下

10.代碼如下

select FirstName, LastName, City, State
from Person as p
left join Address as a
on p.PersonId = a.PersonId

執(zhí)行:?

?

注意:如果沒有某個(gè)人的地址信息,使用?where?子句過濾記錄將失敗,因?yàn)樗粫?huì)顯示姓名信息。?

?🚀總結(jié):關(guān)于on

在 MySQL 中,多表查詢中的左外連接(LEFT JOIN)是一種用于連接兩個(gè)表的查詢操作,它會(huì)返回左表中的所有記錄,以及符合連接條件的右表記錄。在左外連接中,ON 后面連接的條件具體是指定兩個(gè)表之間的連接條件,它決定了在連接時(shí)哪些行應(yīng)該被匹配。

具體來說,ON 后面的條件通常是用來指定連接兩個(gè)表的列之間的關(guān)聯(lián)關(guān)系。這些條件可以是等值比較(例如,table1.column1 = table2.column2),也可以是其他類型的比較操作(例如,大于、小于、包含等)。這些條件決定了在連接時(shí)哪些行應(yīng)該被匹配起來。

ON 的作用是在進(jìn)行表連接時(shí)指定連接條件,它告訴數(shù)據(jù)庫引擎在進(jìn)行左外連接時(shí)應(yīng)該如何匹配兩個(gè)表的行。通過指定連接條件,可以確保在連接時(shí)只有符合條件的行會(huì)被匹配起來,從而實(shí)現(xiàn)多表查詢的目的。

舉個(gè)例子,假設(shè)我們有兩個(gè)表 A 和 B,我們想要以 A 表的所有記錄為基礎(chǔ),同時(shí)將符合某些條件的 B 表記錄連接起來。在這種情況下,我們可以使用左外連接來實(shí)現(xiàn)這一目的。ON 后面的條件將決定 A 表和 B 表之間的連接條件,只有滿足條件的記錄才會(huì)被連接起來。

?🚀超過經(jīng)理收入的員工

表:Employee?

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| salary      | int     |
| managerId   | int     |
+-------------+---------+
id 是該表的主鍵(具有唯一值的列)。
該表的每一行都表示雇員的ID、姓名、工資和經(jīng)理的ID。

編寫解決方案,找出收入比經(jīng)理高的員工。

以?任意順序?返回結(jié)果表。

結(jié)果格式如下所示。

示例 1:

輸入: 
Employee 表:
+----+-------+--------+-----------+
| id | name  | salary | managerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | Null      |
| 4  | Max   | 90000  | Null      |
+----+-------+--------+-----------+
輸出: 
+----------+
| Employee |
+----------+
| Joe      |
+----------+
解釋: Joe 是唯一掙得比經(jīng)理多的雇員。

思路:

方法一

1.在這里面只有一張表,表中有一個(gè)很大的缺陷就是并沒有去記錄員工的直屬領(lǐng)導(dǎo)是誰,只有一個(gè)字段managerId

2.這個(gè)managerId指的就是領(lǐng)導(dǎo)的id,所以managerId指代的就是當(dāng)前表的主鍵,員工id

3.那么我們可以先找出員工對(duì)應(yīng)的領(lǐng)導(dǎo),如遇到這種類型的題,只有一個(gè)表,那必然是用到自連接的

4.提到自連接,就自然聯(lián)想到了一句話,自連接查詢中,必須要為表起別名,很簡(jiǎn)單的邏輯,自連接其實(shí)就是把這題想成兩個(gè)表,一個(gè)員工表,一個(gè)領(lǐng)導(dǎo)表,只是說兩個(gè)表長的一樣而已,所以名字肯定是要不同,那么我們假設(shè)員工表是a,領(lǐng)導(dǎo)表是b

5.那么我們的員工對(duì)應(yīng)的領(lǐng)導(dǎo)的連接條件是什么呢?

6.員工的managerId? = 領(lǐng)導(dǎo)的id

7.來實(shí)現(xiàn)一下這個(gè)過程(自連接的語法)

8.select * from?Employee a join?Employee b on?b.id = a.managerId

9.但我們的目的并不是找員工對(duì)應(yīng)的領(lǐng)導(dǎo),我們還有一個(gè)條件,要員工工資大于領(lǐng)導(dǎo)工資,也就是a.salary > b.salary

10.我們又想起,連接兩個(gè)條件的關(guān)鍵字是什么?and

11.此時(shí)select * from?Employee a join?Employee b on?b.id = a.managerId and?a.salary > b.salary

12.此時(shí)優(yōu)化一下 *?

select a.name as Employee
from 
Employee as ajoin
Employee as bon
a.managerId =b.id and a.salary>b.salary ;

執(zhí)行:?

?

方法二:

1.嵌套查詢,直接抓著工資硬剛

2.Employee表還是取一個(gè)別名a 作為員工表

3.select name as Employee from?Employee as a where salary >? 經(jīng)理的薪資

4.也就是select name as Employee from?Employee as a where salary > (select salary from Employee where Id = a.Managerid )

5.大于號(hào)后面的條件就理解為,查取員工對(duì)應(yīng)的領(lǐng)導(dǎo)的薪資

6.整體理解為員工的薪資 大于 員工對(duì)應(yīng)的領(lǐng)導(dǎo)的薪資,則查詢出來了

select name as Employee from?Employee as a where salary > (select salary from Employee where Id = a.Managerid ) ;

寫到這里,每日兩題的力扣就結(jié)束了,但是對(duì)于第二題來說,我個(gè)人認(rèn)為肯定是自連接的方式讓大家更為接受!

http://www.risenshineclean.com/news/30508.html

相關(guān)文章:

  • 做動(dòng)漫網(wǎng)站侵權(quán)嗎揚(yáng)州網(wǎng)絡(luò)優(yōu)化推廣
  • 怎么通過微博做網(wǎng)站外鏈百度seo外包
  • wordpress游戲網(wǎng)站百度優(yōu)化推廣
  • 做網(wǎng)站賭博的推廣是不是犯罪的上海全網(wǎng)推廣
  • 公司網(wǎng)站 域名網(wǎng)絡(luò)營銷成功案例有哪些
  • 商業(yè)網(wǎng)站建設(shè)的方法外國網(wǎng)站怎么進(jìn)入
  • 做圖素材網(wǎng)站開哪個(gè)vip好熱搜榜上2023年熱門話題
  • 怎么在外管局的網(wǎng)站做延期seo服務(wù)價(jià)格表
  • 怎樣做_網(wǎng)站做seo百度網(wǎng)站的域名地址
  • 3d做號(hào)網(wǎng)站每日精選12條新聞
  • 設(shè)計(jì)前沿的網(wǎng)站東莞網(wǎng)站關(guān)鍵詞優(yōu)化公司
  • 做社群的網(wǎng)站有哪些西安百度推廣怎么做
  • wordpress html插件優(yōu)化網(wǎng)站做什么的
  • 哪家公司做網(wǎng)站最好網(wǎng)絡(luò)營銷專業(yè)技能
  • 明年做那些網(wǎng)站致富網(wǎng)站優(yōu)化包括哪些
  • 無極網(wǎng)站站怎么有的下不了如何讓百度收錄自己信息
  • 新都網(wǎng)站開發(fā)鄭州百度網(wǎng)站優(yōu)化排名
  • 營銷網(wǎng)站的搭建磁力兔子
  • 類似非小號(hào)的網(wǎng)站怎么做軟文推廣一般發(fā)布在哪些平臺(tái)
  • 上城網(wǎng)站建設(shè)百度快照推廣是什么意思
  • 網(wǎng)站添加視頻代碼網(wǎng)絡(luò)建站流程
  • 亞馬遜做deal的網(wǎng)站淘寶指數(shù)網(wǎng)址
  • 網(wǎng)站建設(shè)怎樣上傳程序企業(yè)網(wǎng)站營銷的實(shí)現(xiàn)方式
  • 做網(wǎng)站的畢設(shè)開題依據(jù)在線注冊(cè)網(wǎng)站
  • 如何在office做網(wǎng)站360站長平臺(tái)
  • 公司網(wǎng)站維護(hù)好做嗎百度移動(dòng)端排名軟件
  • 網(wǎng)站建設(shè)外包流程網(wǎng)站排名優(yōu)化怎樣做
  • 萊蕪亓家網(wǎng)站優(yōu)化神馬網(wǎng)站關(guān)鍵詞排名價(jià)格
  • 網(wǎng)站建設(shè)在線視頻百度云搜索入口
  • diy做網(wǎng)站搜索關(guān)鍵詞的工具