欧美亚洲韩国_av电影院在线看_久久久久97_台湾佬中文娱乐网欧美电影

站長資訊網
最全最豐富的資訊網站

一起聊聊MySQL基礎之連接查詢

本篇文章給大家帶來了關于mysql中連接查詢的相關知識,其中包括內連接、外連接、多表連接以及子查詢的相關問題,希望對大家有幫助。

一起聊聊MySQL基礎之連接查詢

再次認識關系表

我們之前一直使用student_infostudent_score兩個表來分別存儲學生的基本信息和學生的成績信息,其實合并成一張表也不是不可以,假設將兩張表合并后的新表名稱為student_merge,那它應該長這樣:

student_merge表

number name sex id_number department major enrollment_time subject score
20180101 杜子騰 158177199901044792 計算機學院 計算機科學與工程 2018-09-01 母豬的產后護理 78
20180101 杜子騰 158177199901044792 計算機學院 計算機科學與工程 2018-09-01 論薩達姆的戰爭準備 88
20180102 杜琦燕 151008199801178529 計算機學院 計算機科學與工程 2018-09-01 母豬的產后護理 100
20180102 杜琦燕 151008199801178529 計算機學院 計算機科學與工程 2018-09-01 論薩達姆的戰爭準備 98
20180103 范統 17156319980116959X 計算機學院 軟件工程 2018-09-01 母豬的產后護理 59
20180103 范統 17156319980116959X 計算機學院 軟件工程 2018-09-01 論薩達姆的戰爭準備 61
20180104 史珍香 141992199701078600 計算機學院 軟件工程 2018-09-01 母豬的產后護理 55
20180104 史珍香 141992199701078600 計算機學院 軟件工程 2018-09-01 論薩達姆的戰爭準備 46
20180105 范劍 181048200008156368 航天學院 飛行器設計 2018-09-01 NULL NULL
20180106 朱逸群 197995199801078445 航天學院 電子信息 2018-09-01 NULL NULL

有了這個合并后的表,我們就可以在一個查詢語句中既查詢到學生的基本信息,也查詢到學生的成績信息,比如這個查詢語句:

SELECT number, name, major, subject, score FROM student_merge;

其中查詢列表處的namemajor屬于學生的基本信息,subjectscore屬于學生的成績信息,而number既屬于成績信息也屬于基本信息,我們可以在一個對student_merge表的查詢語句中很輕松的把這些信息都查詢出來。但是別忘了一個學生可能會有很多門學科的成績信息,也就是說每當我們想為一個學生增加一門學科的成績信息時,我們必須把他的基本信息再抄一遍,這種同一個學生的基本信息被冗余存儲會帶來下邊的問題:

  • 問題一:浪費存儲空間。

  • 問題二:當修改某個學生的基本信息時必須修改多處,很容易造成信息的不一致,增大維護的困難。

所以為了盡可能少的存儲冗余信息,一開始我們就把這個所謂的student_merge表拆分成了student_infostudent_score表,但是這兩張表之間有某種關系作為紐帶,這里的某種關系指的就是兩個表都擁有的number列。

連接的概念

拆分之后的表的確解決了數據冗余問題,但是查詢數據卻成了一個問題。截至目前為止,在我們介紹的查詢方式中,查詢結果集只能是一個表中的一個列或者多個列,也就是說到目前為止還沒有一種可以在一條查詢語句中把某個學生的numbernamemajorsubjectscore這幾個信息都查詢出來的方式。

小貼士: 雖然我們前邊介紹的子查詢可以在一個查詢語句中涉及到多個表,但是整個查詢語句最終產生的結果集還是用來展示外層查詢的結果,子查詢的結果只是被當作中間結果來使用。

時代在召喚一種可以在一個查詢語句結果集中展示多個表的信息的方式,連接查詢承擔了這個艱巨的歷史使命。當然,為了故事的順利發展,我們先建立兩個簡單的表并給它們填充一點數據:

mysql> CREATE TABLE t1 (m1 int, n1 char(1)); Query OK, 0 rows affected (0.02 sec)  mysql> CREATE TABLE t2 (m2 int, n2 char(1)); Query OK, 0 rows affected (0.02 sec)  mysql> INSERT INTO t1 VALUES(1, 'a'), (2, 'b'), (3, 'c'); Query OK, 3 rows affected (0.00 sec) Records: 3  Duplicates: 0  Warnings: 0  mysql> INSERT INTO t2 VALUES(2, 'b'), (3, 'c'), (4, 'd'); Query OK, 3 rows affected (0.00 sec) Records: 3  Duplicates: 0  Warnings: 0  mysql>

我們成功建立了t1t2兩個表,這兩個表都有兩個列,一個是INT類型的,一個是CHAR(1)類型的,填充好數據的兩個表長這樣:

mysql> SELECT * FROM t1; +------+------+ | m1   | n1   | +------+------+ |    1 | a    | |    2 | b    | |    3 | c    | +------+------+ 3 rows in set (0.00 sec)  mysql> SELECT * FROM t2; +------+------+ | m2   | n2   | +------+------+ |    2 | b    | |    3 | c    | |    4 | d    | +------+------+ 3 rows in set (0.00 sec)  mysql>

連接的本質就是把各個表中的記錄都取出來依次匹配的組合加入結果集并返回給用戶。我們把t1和t2兩個表連接起來的過程如下圖所示:

一起聊聊MySQL基礎之連接查詢

這個過程看起來就是把t1表的記錄和t2表的記錄連起來組成新的更大的記錄,所以這個查詢過程稱之為連接查詢。連接查詢的結果集中包含一個表中的每一條記錄與另一個表中的每一條記錄相互匹配的組合,像這樣的結果集就可以稱之為笛卡爾積。因為表t1中有3條記錄,表t2中也有3條記錄,所以這兩個表連接之后的笛卡爾積就有3×3=9行記錄。在MySQL中,連接查詢的語法也很隨意,只要在FROM語句后邊跟多個用逗號,隔開的表名就好了,比如我們把t1表和t2表連接起來的查詢語句可以寫成這樣:

mysql> SELECT * FROM t1, t2; +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    1 | a    |    2 | b    | |    2 | b    |    2 | b    | |    3 | c    |    2 | b    | |    1 | a    |    3 | c    | |    2 | b    |    3 | c    | |    3 | c    |    3 | c    | |    1 | a    |    4 | d    | |    2 | b    |    4 | d    | |    3 | c    |    4 | d    | +------+------+------+------+ 9 rows in set (0.00 sec)

查詢列表處的*代表從FROM語句后列出的表中選取每個列,上邊的查詢語句其實和下邊這幾種寫法都是等價的:

  • 寫法一:

    SELECT t1.m1, t1.n1, t2.m2, t2.n2 FROM t1, t2;

    這種寫法是將t1t2表中的列名都顯式的寫出來,也就是使用了列的全限定名。

  • 寫法二:

    SELECT m1, n1, m2, n2 FROM t1, t2;

    由于t1t2表中的列名并不重復,所以沒有可能讓服務器懵逼的二義性,在查詢列表上直接使用列名也是可以的。

  • 寫法三:

    SELECT t1.*, t2.* FROM t1, t2;

    這種寫法意思就是查詢t1表的全部的列,t2表的全部的列。

連接過程簡介

如果我們樂意,我們可以連接任意數量張表,但是如果沒有任何限制條件的話,這些表連接起來產生的笛卡爾積可能是非常巨大的。比方說3個100行記錄的表連接起來產生的笛卡爾積就有100×100×100=1000000行數據!所以在連接的時候過濾掉特定記錄組合是有必要的,在連接查詢中的過濾條件可以分成兩種:

  • 涉及單表的條件

    這種只涉及單表的過濾條件我們之前都提到過一萬遍了,我們之前也一直稱為搜索條件,比如t1.m1 > 1是只針對t1表的過濾條件,t2.n2 < 'd'是只針對t2表的過濾條件。

  • 涉及兩表的條件

    這種過濾條件我們之前沒見過,比如t1.m1 = t2.m2t1.n1 > t2.n2等,這些條件中涉及到了兩個表,我們稍后會仔細分析這種過濾條件是如何使用的哈。

下邊我們就要看一下攜帶過濾條件的連接查詢的大致執行過程了,比方說下邊這個查詢語句:

SELECT * FROM t1, t2 WHERE t1.m1 > 1 AND t1.m1 = t2.m2 AND t2.n2 < 'd';

在這個查詢中我們指明了這三個過濾條件:

  • t1.m1 > 1

  • t1.m1 = t2.m2

  • t2.n2 < 'd'

那么這個連接查詢的大致執行過程如下:

  1. 首先確定第一個需要查詢的表,這個表稱之為驅動表。此處假設使用t1作為驅動表,那么就需要到t1表中找滿足t1.m1 > 1的記錄,符合這個條件的t1表記錄如下所示:

    +------+------+ | m1   | n1   | +------+------+ |    2 | b    | |    3 | c    | +------+------+ 2 rows in set (0.01 sec)

    我們可以看到,t1表中符合t1.m1 > 1的記錄有兩條。

  2. 上一步驟中從驅動表每獲取到一條記錄,都需要到t2表中查找匹配的記錄,所謂匹配的記錄,指的是符合過濾條件的記錄。因為是根據t1表中的記錄去找t2表中的記錄,所以t2表也可以被稱之為被驅動表。上一步驟從驅動表中得到了2條記錄,也就意味著需要查詢2次t2表。此時涉及兩個表的列的過濾條件t1.m1 = t2.m2就派上用場了:

    • 對于從t1表種查詢得到的第一條記錄,也就是當t1.m1 = 2, t1.n1 = 'b'時,過濾條件t1.m1 = t2.m2就相當于t2.m2 = 2,所以此時t2表相當于有了t2.m2 = 2t2.n2 < 'd'這兩個過濾條件,然后到t2表中執行單表查詢,將得到的記錄和從t1表中查詢得到的第一條記錄相組合得到下邊的結果:

      +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    2 | b    |    2 | b    | +------+------+------+------+
    • 對于從t1表種查詢得到的第二條記錄,也就是當t1.m1 = 3, t1.n1 = 'c'時,過濾條件t1.m1 = t2.m2就相當于t2.m2 = 3,所以此時t2表相當于有了t2.m2 = 3t2.n2 < 'd'這兩個過濾條件,然后到t2表中執行單表查詢,將得到的記錄和從t1表中查詢得到的第二條記錄相組合得到下邊的結果:

      +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    3 | c    |    3 | c    | +------+------+------+------+

    所以整個連接查詢的執行最后得到的結果集就是這樣:

    +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    2 | b    |    2 | b    | |    3 | c    |    3 | c    | +------+------+------+------+ 2 rows in set (0.00 sec)

從上邊兩個步驟可以看出來,我們上邊嘮叨的這個兩表連接查詢共需要查詢1次t1表,2次t2表。當然這是在特定的過濾條件下的結果,如果我們把t1.m1 > 1這個條件去掉,那么從t1表中查出的記錄就有3條,就需要查詢3次t2表了。也就是說在兩表連接查詢中,驅動表只需要查詢一次,被驅動表可能會被查詢多次。

內連接和外連接

了解了連接查詢的執行過程之后,視角再回到我們的student_info表和student_score表。現在我們想在一個查詢語句中既查詢到學生的基本信息,也查詢到學生的成績信息,就需要進行兩表連接了。連接過程就是從student_info表中取出記錄,在student_score表中查找number值相同的成績記錄,所以過濾條件就是student_info.number = student_score.number,整個查詢語句就是這樣:

mysql> SELECT student_info.number, name, major, subject, score FROM student_info, student_score WHERE student_info.number = student_score.number; +----------+-----------+--------------------------+-----------------------------+-------+ | number   | name      | major                    | subject                     | score | +----------+-----------+--------------------------+-----------------------------+-------+ | 20180101 | 杜子騰    | 計算機科學與工程         | 母豬的產后護理              |    78 | | 20180101 | 杜子騰    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    88 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 母豬的產后護理              |   100 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    98 | | 20180103 | 范統      | 軟件工程                 | 母豬的產后護理              |    59 | | 20180103 | 范統      | 軟件工程                 | 論薩達姆的戰爭準備          |    61 | | 20180104 | 史珍香    | 軟件工程                 | 母豬的產后護理              |    55 | | 20180104 | 史珍香    | 軟件工程                 | 論薩達姆的戰爭準備          |    46 | +----------+-----------+--------------------------+-----------------------------+-------+ 8 rows in set (0.00 sec)  mysql>

小貼士: student_info表和student_score表都有number列,不過我們在上述查詢語句的查詢列表中只放置了student_info表的number列,這是因為我們的過濾條件是student_info.number = student_score.number,從兩個表中取出的記錄的number列都相同,所以只需要放置一個表中的number列到查詢列表即可,也就是說我們把student_score.number放到查詢列表處也是可以滴~

從上述查詢結果中我們可以看到,各個同學對應的各科成績就都被查出來了,可是有個問題,范劍朱逸群同學,也就是學號為2018010520180106的同學因為某些原因沒有參加考試,所以在studnet_score表中沒有對應的成績記錄。那如果老師想查看所有同學的考試成績,即使是缺考的同學也應該展示出來,但是到目前為止我們介紹的連接查詢是無法完成這樣的需求的。我們稍微思考一下這個需求,其本質是想:驅動表中的記錄即使在被驅動表中沒有匹配的記錄,也仍然需要加入到結果集。為了解決這個問題,就有了內連接外連接的概念:

  • 對于內連接的兩個表,驅動表中的記錄在被驅動表中找不到匹配的記錄,該記錄不會加入到最后的結果集,我們上邊提到的連接都是所謂的內連接

  • 對于外連接的兩個表,驅動表中的記錄即使在被驅動表中沒有匹配的記錄,也仍然需要加入到結果集。

    MySQL中,根據選取驅動表的不同,外連接仍然可以細分為2種:

    • 左外連接

      選取左側的表為驅動表。

    • 右外連接

      選取右側的表為驅動表。

可是這樣仍然存在問題,即使對于外連接來說,有時候我們也并不想把驅動表的全部記錄都加入到最后的結果集。這就犯難了,有時候匹配失敗要加入結果集,有時候又不要加入結果集,這咋辦,有點兒愁啊。。。噫,把過濾條件分為兩種不就解決了這個問題了么,所以放在不同地方的過濾條件是有不同語義的:

  • WHERE子句中的過濾條件

    WHERE子句中的過濾條件就是我們平時見的那種,不論是內連接還是外連接,凡是不符合WHERE子句中的過濾條件的記錄都不會被加入最后的結果集。

  • ON子句中的過濾條件

    對于外連接的驅動表的記錄來說,如果無法在被驅動表中找到匹配ON子句中的過濾條件的記錄,那么該記錄仍然會被加入到結果集中,對應的被驅動表記錄的各個字段使用NULL值填充。

    需要注意的是,這個ON子句是專門為外連接驅動表中的記錄在被驅動表找不到匹配記錄時應不應該把該記錄加入結果集這個場景下提出的,所以如果把ON子句放到內連接中,MySQL會把它和WHERE子句一樣對待,也就是說:內連接中的WHERE子句和ON子句是等價的。

一般情況下,我們都把只涉及單表的過濾條件放到WHERE子句中,把涉及兩表的過濾條件都放到ON子句中,我們也一般把放到ON子句中的過濾條件也稱之為連接條件

小貼士: 左外連接和右外連接簡稱左連接和右連接,所以下邊提到的左外連接和右外連接中的`外`字都用括號擴起來,以表示這個字兒可有可無。

左(外)連接的語法

左(外)連接的語法還是挺簡單的,比如我們要把t1表和t2表進行左外連接查詢可以這么寫:

SELECT * FROM t1 LEFT [OUTER] JOIN t2 ON 連接條件 [WHERE 普通過濾條件];

其中中括號里的OUTER單詞是可以省略的。對于LEFT JOIN類型的連接來說,我們把放在左邊的表稱之為外表或者驅動表,右邊的表稱之為內表或者被驅動表。所以上述例子中t1就是外表或者驅動表,t2就是內表或者被驅動表。需要注意的是,對于左(外)連接和右(外)連接來說,必須使用ON子句來指出連接條件。了解了左(外)連接的基本語法之后,再次回到我們上邊那個現實問題中來,看看怎樣寫查詢語句才能把所有的學生的成績信息都查詢出來,即使是缺考的考生也應該被放到結果集中:

mysql> SELECT student_info.number, name, major, subject, score FROM student_info LEFT JOIN student_score ON student_info.number = student_score.number; +----------+-----------+--------------------------+-----------------------------+-------+ | number   | name      | major                    | subject                     | score | +----------+-----------+--------------------------+-----------------------------+-------+ | 20180101 | 杜子騰    | 計算機科學與工程         | 母豬的產后護理              |    78 | | 20180101 | 杜子騰    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    88 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 母豬的產后護理              |   100 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    98 | | 20180103 | 范統      | 軟件工程                 | 母豬的產后護理              |    59 | | 20180103 | 范統      | 軟件工程                 | 論薩達姆的戰爭準備          |    61 | | 20180104 | 史珍香    | 軟件工程                 | 母豬的產后護理              |    55 | | 20180104 | 史珍香    | 軟件工程                 | 論薩達姆的戰爭準備          |    46 | | 20180105 | 范劍      | 飛行器設計               | NULL                        |  NULL | | 20180106 | 朱逸群    | 電子信息                 | NULL                        |  NULL | +----------+-----------+--------------------------+-----------------------------+-------+ 10 rows in set (0.00 sec)  mysql>

從結果集中可以看出來,雖然范劍朱逸群并沒有對應的成績記錄,但是由于采用的是連接類型為左(外)連接,所以仍然把它放到了結果集中,只不過在對應的成績記錄的各列使用NULL值填充而已。

右(外)連接的語法

右(外)連接和左(外)連接的原理是一樣一樣的,語法也只是把LEFT換成RIGHT而已:

SELECT * FROM t1 RIGHT [OUTER] JOIN t2 ON 連接條件 [WHERE 普通過濾條件];

只不過驅動表是右邊的表,被驅動表是左邊的表,具體就不嘮叨了。

內連接的語法

內連接和外連接的根本區別就是在驅動表中的記錄不符合ON子句中的連接條件時不會把該記錄加入到最后的結果集,我們最開始嘮叨的那些連接查詢的類型都是內連接。不過之前僅僅提到了一種最簡單的內連接語法,就是直接把需要連接的多個表都放到FROM子句后邊。其實針對內連接,MySQL提供了好多不同的語法,我們以t1t2表為例瞅瞅:

SELECT * FROM t1 [INNER | CROSS] JOIN t2 [ON 連接條件] [WHERE 普通過濾條件];

也就是說在MySQL中,下邊這幾種內連接的寫法都是等價的:

  • SELECT * FROM t1 JOIN t2;

  • SELECT * FROM t1 INNER JOIN t2;

  • SELECT * FROM t1 CROSS JOIN t2;

上邊的這些寫法和直接把需要連接的表名放到FROM語句之后,用逗號,分隔開的寫法是等價的:

 SELECT * FROM t1, t2;

現在我們雖然介紹了很多種內連接的書寫方式,不過熟悉一種就好了,這里我們推薦INNER JOIN的形式書寫內連接(因為INNER JOIN語義很明確嘛,可以和LEFT JOIN和RIGHT JOIN很輕松的區分開)。這里需要注意的是,由于在內連接中ON子句和WHERE子句是等價的,所以內連接中不要求強制寫明ON子句。

我們前邊說過,連接的本質就是把各個連接表中的記錄都取出來依次匹配的組合加入結果集并返回給用戶。不論哪個表作為驅動表,兩表連接產生的笛卡爾積肯定是一樣的。而對于內連接來說,由于凡是不符合ON子句或WHERE子句中的條件的記錄都會被過濾掉,其實也就相當于從兩表連接的笛卡爾積中把不符合過濾條件的記錄給踢出去,所以對于內連接來說,驅動表和被驅動表是可以互換的,并不會影響最后的查詢結果。但是對于外連接來說,由于驅動表中的記錄即使在被驅動表中找不到符合ON子句連接條件的記錄也會被加入結果集,所以此時驅動表和被驅動表的關系就很重要了,也就是說左外連接和右外連接的驅動表和被驅動表不能輕易互換。

小結

上邊說了很多,給大家的感覺不是很直觀,我們直接把表t1和t2的三種連接方式寫在一起,這樣大家理解起來就很easy了:

mysql> SELECT * FROM t1 INNER JOIN t2 ON t1.m1 = t2.m2; +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    2 | b    |    2 | b    | |    3 | c    |    3 | c    | +------+------+------+------+ 2 rows in set (0.00 sec)  mysql> SELECT * FROM t1 LEFT JOIN t2 ON t1.m1 = t2.m2; +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    2 | b    |    2 | b    | |    3 | c    |    3 | c    | |    1 | a    | NULL | NULL | +------+------+------+------+ 3 rows in set (0.00 sec)  mysql> SELECT * FROM t1 RIGHT JOIN t2 ON t1.m1 = t2.m2; +------+------+------+------+ | m1   | n1   | m2   | n2   | +------+------+------+------+ |    2 | b    |    2 | b    | |    3 | c    |    3 | c    | | NULL | NULL |    4 | d    | +------+------+------+------+ 3 rows in set (0.00 sec)

連接查詢產生的結果集就好像把散布到兩個表中的信息被重新粘貼到了一個表,這個粘貼后的結果集可以方便我們分析數據,就不用老是兩個表對照的看了。

多表連接

上邊說過,如果我們樂意的話可以連接任意數量的表,我們再來創建一個簡單的t3表:

mysql> CREATE TABLE t3 (m3 int, n3 char(1)); ERROR 1050 (42S01): Table 't3' already exists mysql> INSERT INTO t3 VALUES(3, 'c'), (4, 'd'), (5, 'e'); Query OK, 3 rows affected (0.01 sec) Records: 3  Duplicates: 0  Warnings: 0  mysql>

t1t2表的結構一樣,也是一個INT列,一個CHAR(1)列,現在我們看一下把這3個表連起來的樣子:

mysql> SELECT * FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.m1 = t2.m2 AND t1.m1 = t3.m3; +------+------+------+------+------+------+ | m1   | n1   | m2   | n2   | m3   | n3   | +------+------+------+------+------+------+ |    3 | c    |    3 | c    |    3 | c    | +------+------+------+------+------+------+ 1 row in set (0.00 sec)  mysql>

其實上邊的查詢語句也可以寫成這樣,用哪個取決于你的心情:

SELECT * FROM t1 INNER JOIN t2 ON t1.m1 = t2.m2 INNER JOIN t3 ON t1.m1 = t3.m3;

這個查詢的執行過程用偽代碼表示一下就是這樣:

for each row in t1 {      for each row in t2 which satisfies t1.m1 = t2.m2 {                  for each row in t3 which satisfies t1.m1 = t3.m3 {             send to client;         }     } }

其實不管是多少個表的連接,本質上就是各個表的記錄在符合過濾條件下的自由組合。

表的別名

我們前邊曾經為列命名過別名,比如說這樣:

mysql> SELECT number AS xuehao FROM student_info; +----------+ | xuehao   | +----------+ | 20180104 | | 20180102 | | 20180101 | | 20180103 | | 20180105 | | 20180106 | +----------+ 6 rows in set (0.00 sec)  mysql>

我們可以把列的別名用在ORDER BYGROUP BY等子句上,比如這樣:

mysql> SELECT number AS xuehao FROM student_info ORDER BY xuehao DESC; +----------+ | xuehao   | +----------+ | 20180106 | | 20180105 | | 20180104 | | 20180103 | | 20180102 | | 20180101 | +----------+ 6 rows in set (0.00 sec)  mysql>

與列的別名類似,我們也可以為表來定義別名,格式與定義列的別名一致,都是用空白字符或者AS隔開,這個在表名特別長的情況下可以讓語句表達更清晰一些,比如這樣:

mysql> SELECT s1.number, s1.name, s1.major, s2.subject, s2.score FROM student_info AS s1 INNER JOIN student_score AS s2 WHERE s1.number = s2.number; +----------+-----------+--------------------------+-----------------------------+-------+ | number   | name      | major                    | subject                     | score | +----------+-----------+--------------------------+-----------------------------+-------+ | 20180101 | 杜子騰    | 計算機科學與工程         | 母豬的產后護理              |    78 | | 20180101 | 杜子騰    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    88 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 母豬的產后護理              |   100 | | 20180102 | 杜琦燕    | 計算機科學與工程         | 論薩達姆的戰爭準備          |    98 | | 20180103 | 范統      | 軟件工程                 | 母豬的產后護理              |    59 | | 20180103 | 范統      | 軟件工程                 | 論薩達姆的戰爭準備          |    61 | | 20180104 | 史珍香    | 軟件工程                 | 母豬的產后護理              |    55 | | 20180104 | 史珍香    | 軟件工程                 | 論薩達姆的戰爭準備          |    46 | +----------+-----------+--------------------------+-----------------------------+-------+ 8 rows in set (0.00 sec)  mysql>

這個例子中,我們在FROM子句中給student_info定義了一個別名s1student_score定義了一個別名s2,那么在整個查詢語句的其他地方就可以引用這個別名來替代該表本身的名字了。

自連接

我們上邊說的都是多個不同的表之間的連接,其實同一個表也可以進行連接。比方說我們可以對兩個t1表來生成笛卡爾積,就像這樣:

mysql> SELECT * FROM t1, t1; ERROR 1066 (42000): Not unique table/alias: 't1' mysql>

咦,報了個錯,這是因為設計MySQL的大叔不允許FROM子句中出現相同的表名。我們這里需要的是兩張一模一樣的t1表進行連接,為了把兩個一樣的表區分一下,需要為表定義別名。比如這樣:

mysql> SELECT * FROM t1 AS table1, t1 AS table2; +------+------+------+------+ | m1   | n1   | m1   | n1   | +------+------+------+------+ |    1 | a    |    1 | a    | |    2 | b    |    1 | a    | |    3 | c    |    1 | a    | |    1 | a    |    2 | b    | |    2 | b    |    2 | b    | |    3 | c    |    2 | b    | |    1 | a    |    3 | c    | |    2 | b    |    3 | c    | |    3 | c    |    3 | c    | +------+------+------+------+ 9 rows in set (0.00 sec)  mysql>

這里相當于我們為t1表定義了兩個副本,一個是table1,另一個是table2,這里的連接過程就不贅述了,大家把它們認為是不同的表就好了。由于被連接的表其實是源自同一個表,所以這種連接也稱為自連接。我們看一下這個自連接的現實意義,比方說我們想查看與'史珍香'相同專業的學生有哪些,可以這么寫:

mysql> SELECT s2.number, s2.name, s2.major FROM student_info AS s1 INNER JOIN student_info AS s2 WHERE s1.major = s2.major AND s1.name = '史珍香' ; +----------+-----------+--------------+ | number   | name      | major        | +----------+-----------+--------------+ | 20180103 | 范統      | 軟件工程     | | 20180104 | 史珍香    | 軟件工程     | +----------+-----------+--------------+ 2 rows in set (0.01 sec)  mysql>

s1s2都可以看作是student_info表的一份副本,我們可以這樣理解這個查詢:

  • 根據s1.name = '史珍香'搜索條件過濾s1表,可以得到該同學的基本信息:

    +----------+-----------+------+--------------------+-----------------+--------------+-----------------+ | number   | name      | sex  | id_number          | department      | major        | enrollment_time | +----------+-----------+------+--------------------+-----------------+--------------+-----------------+ | 20180104 | 史珍香    | 女   | 141992199701078600 | 計算機學院      | 軟件工程     | 2018-09-01      | +----------+-----------+------+--------------------+-----------------+--------------+-----------------+
  • 因為通過查詢s1表,得到了'史珍香'所在的專業其實是'軟件工程',接下來就應該查詢s2表了,查詢s2表的時候的過濾條件s1.major = s2.major就相當于s2.major = '軟件工程',于是查詢到2條記錄:

    +----------+-----------+------+--------------------+-----------------+--------------+-----------------+ | number   | name      | sex  | id_number          | department      | major        | enrollment_time | +----------+-----------+------+--------------------+-----------------+--------------+-----------------+ | 20180103 | 范統      | 男   | 17156319980116959X | 計算機學院      | 軟件工程     | 2018-09-01      | | 20180104 | 史珍香    | 女   | 141992199701078600 | 計算機學院      | 軟件工程     | 2018-09-01      | +----------+-----------+------+--------------------+-----------------+--------------+-----------------+

    而我們只需要s2表的numbernamemajor這3個列的數據,所以最終的結果就長這樣:

    +----------+-----------+--------------+ | number   | name      | major        | +----------+-----------+--------------+ | 20180103 | 范統      | 軟件工程     | | 20180104 | 史珍香    | 軟件工程     | +----------+-----------+--------------+

連接查詢與子查詢的轉換

有的查詢需求既可以使用連接查詢解決,也可以使用子查詢解決,比如

SELECT * FROM student_score WHERE number IN (SELECT number FROM student_info WHERE major = '計算機科學與工程');

這個子查詢就可以被替換:

SELECT s2.* FROM student_info AS s1 INNER JOIN student_score AS s2 WHERE s1.number = s2.number AND s1.major = '計算機科學與工程';

大家在實際使用時可以按照自己的習慣來書寫查詢語句。

小貼士: MySQL服務器在內部可能將子查詢轉換為連接查詢來處理,當然也可能用別的方式來處理,不過對于我們剛入門的小白來說,這些都不重要,知道這個語句會把哪些信息查出來就好了!

推薦學習:mysql視頻教程

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
主站蜘蛛池模板: 不卡的av | 久久久一| 男人天堂2021 | 欧美激情 亚洲 | 成人在线免费网站 | 久久久新| 亚洲一二三四区 | 91视频免费在线观看 | 免费激情小视频 | 国产任你操 | 一本加勒比hezyo综合 | 性活交片大全免费看 | 国产五月婷婷 | 93看片淫黄大片一级 | 亚洲一级视频在线观看 | 青青草国产在线视频 | 97久久超碰| 我要操婊 | 91不卡视频 | 97caoav| 网爆门在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 91香蕉视频在线看 | 动漫av网站 | 久久免费少妇高潮99精品 | 国产精品一区二区av | 亚洲四虎影院 | 国产涩涩| 久久爱一区 | av福利在线观看 | 蜜臀久久99精品久久久久久宅男 | 中文字幕视频一区 | 95久久 | 婷婷丁香激情五月 | 69精品久久久久 | 精品午夜久久 | 亚洲精品成人久久久998 | 夜夜高潮夜夜爽精品视频 | 国产又大又黄的视频 | 欧美国产综合 | 九久久久久 | 国产黄频在线观看 | 欧美成人久久久 | www.78av| 亚洲免费av网站 | 波多野结衣中文字幕一区二区 | 亚洲一级淫片 | 新天堂av | 亚洲高清自拍 | aaa一级片| 青青伊人久久 | 亚洲欧美一区二区三区在线 | 国产一区二区在线免费观看 | 国产无遮挡又黄又爽又色 | 香蕉av在线 | 精品国产一区二区三区久久久蜜臀 | 亚洲欧美日本在线观看 | 精品视频免费 | 亚洲啪 | 色噜噜成人 | 亚洲第7页| 在线观看中文字幕亚洲 | 日韩精品一区二区三区视频 | www.色综合.com | 激情黄色av | 欧美日韩免费 | 欧美色鬼 | 日本成人福利视频 | 中国一级特黄录像播放 | 亚洲最新视频在线观看 | 伊人精品在线观看 | 国内精品久久久久久久影视简单 | 午夜美女福利视频 | 国产情侣一区二区 | 亚洲精品国产精品国自产观看浪潮 | 国产亚洲va天堂va777 | 黄色三级在线观看 | 青青操免费在线视频 | 超碰在线91 | 丁香婷婷激情五月 | 国产激情视频在线 | 美女福利视频 | 欧美精品一区二区三 | 国内成人精品 | 在线观看国产亚洲 | 欧美一级免费 | 精品999久久久 | 国模二区| 麻豆精品久久 | 看全黄大黄大色大片美女 | h视频网站在线观看 | 国产精品亚洲а∨天堂免在线 | 色涩综合 | 免费日韩毛片 | 影音先锋亚洲精品 | 在线永久看片免费的视频 | 亚洲国产一区在线 | 长篇爽欲亲伦96部小说 | 天堂综合网久久 | 一本色道综合久久欧美日韩精品 | 久久久久三级 | 男同志毛片特黄毛片 | 日韩资源在线观看 | 99精品免费视频 | 18资源在线www免费 | 亚洲视频中文字幕在线观看 | 伊人操操| 日韩高清一区二区 | 国产亚洲综合一区二区 | 一区二区三区欧美在线观看 | 亚洲成人一级 | 欧美无马| 免费黄色一级 | 在线观看污视频网站 | 奇米影视亚洲 | 免费看黄色三级三级 | 欧美中文一区 | 深夜视频免费在线观看 | 午夜激情婷婷 | 国产精品一区二区6 | 午夜两性网 | 人人九九精品 | 国产在线视频一区二区三区 | 国产福利小视频在线 | 中文字幕777| 亚洲精品18p | 欧美日韩少妇精品 | 波多野结衣中文字幕一区 | 女人久久久久 | 亚洲精品va | 人人射av | www.久久久久| 欧美精品二区三区 | 成人黄色a | 中文字幕综合在线 | 在线亚洲+欧美+日本专区 | 草草影院av | 亚洲一区中文字幕在线观看 | 亚洲综合自拍偷拍 | 看片地址| 香蕉久久av| 久操视频在线 | 亚洲欧美男人天堂 | 嫩草一区二区三区 | 一区二区在线视频播放 | 九九九亚洲 | 国产精品亚洲精品 | av加勒比| 一级免费黄色 | 超碰77| 久草综合网 | 国产在线导航 | 国产精品福利片 | 国产网址在线观看 | 国产精品欧美在线 | 好吊妞视频一区二区三区 | 欧美性大战久久久久久久蜜桃 | 白丝av | 欧美成人精品一区二区三区在线看 | 女同一区二区三区 | 国产日韩欧美中文字幕 | 超黄网站在线观看 | 精品999久久久 | 99久久精品国产免费看不卡 | 欧美性猛交xxxx乱大交蜜桃 | 91精品网 | 国产欧美精品一区二区 | 国产激情啪啪 | 国产男女猛烈无遮挡免费观看网站 | 欧美一级片网址 | 精品视频在线播放 | 欧美啪视频 | 国产精品美女啪啪 | 亚洲黄色一区二区 | 四虎成人免费视频 | 99热国内精品 | 亚洲黄色片在线 | 一级二级三级视频 | 一级全黄裸体免费视频 | 精精国产xxxx在线观看主放器 | 婷婷综合视频 | 香蕉大人久久国产成人av | 欧美大白bbbb与bbbb | 嫩草影院久久 | 国产成人免费av一区二区午夜 | 视频黄色免费 | 黄色免费小视频 | 国产精品视频一 | 九月丁香婷婷 | 久久99国产视频 | 色噜噜日韩精品欧美一区二区 | 激情视频一区二区三区 | 亚洲爱v | 中文字幕一区二区三区精品 | 激情综合视频 | 国产黄三级三级三级三级一区二反 | 在线国产毛片 | 热热热av| 男女作爱免费网站 | 亚洲日本中文字幕 | 日本网站免费观看 | 天堂资源最新在线 | 国产女主播一区二区 | 黄色一级片免费看 | 日韩精品中文字幕在线播放 | 久久嗨| 性巴克成人免费网站 | 日日狠狠久久偷偷四色综合免费 | 亚洲一区和二区 | 在线射 | 古装三级吃奶做爰 | 91射 | 波多野吉衣一区 | 亚洲国产精品一区二区三区 | 亚洲欧洲自拍偷拍 | 国产精品久久久久一区二区三区 | 超碰国产人人 | 天天天天干| 国产视频中文字幕 | 亚洲专区第一页 | 九色综合网 | 亚洲九九九九 | 国产三级理论片 | 亚洲无限码 | 国产色一区| 97久久香蕉国产线看观看 | 91私拍| 国产一区二区小视频 | 香蕉久久夜色精品国产使用方法 | 亚洲图片欧美激情 | 91色视频网站 | 亚洲国产小视频 | 亚洲性片 | 成人毛片av | 日韩欧美在线不卡 | 日本激情视频网站 | 国产做a| 黄色av网站免费看 | 成人免费毛片aaaaaa片 | 91国产丝袜在线播放 | 亚洲三级在线观看 | 国产午夜精品一区二区三区嫩草 | 国产做爰xxxⅹ性视频国 | 亚瑟av在线| av在线观| 婷婷深爱 | 成人一区二区三区免费视频 | 午夜av成人| 欧美黄色免费网站 | 7777kkkk成人观看 | 精品小视频在线观看 | 久久久久久久国产精品 | 台湾久久 | 欧美成人一区二区 | 日韩草逼| 日本高清黄色 | 人人干人人干 | 乳孔很大能进去的av番号 | 九九精品九九 | 少妇激情网 | 欧美视频一区二区 | 精品久久久av | 亚洲码国产岛国毛片在线 | 青青射| 国产人成在线 | 又黄又爽在线观看 | 久久网免费视频 | 怡红院男人的天堂 | 不卡的av| 另类天堂首页 | 澳门黄色网 | 人人澡超碰碰97碰碰碰 | 在线a亚洲视频播放在线观看 | 黄色大全在线观看 | 中文字幕99 | 成人av不卡 | 国产精品成人免费一区久久羞羞 | 亚洲三级网| 蜜臀精品一区二区三区 | 最色网站 | 视频一区日韩 | 羞羞色院91精品网站 | 久久不雅视频 | 日韩av网址在线观看 | 狠狠躁夜夜躁人 | 激情图片区 | 波多野一区 | 午夜视频一区二区三区 | 亚洲美女毛片 | 久久久久久久久久艹 | 欧美999 | 视频网站在线观看18 | 97伊人超碰 | 天天躁日日躁狠狠躁 | 少妇高潮露脸国语对白 | 天天射干| 天堂在线视频免费 | 日本视频在线免费观看 | 亚洲欧美综合一区 | 国产村民一二三区 | 日韩欧美亚 | 自拍偷拍国内 | 九九视频免费在线观看 | 日韩久久久久久久久 | 欧美高清免费 | 一区二区在线不卡 | 成人午夜免费福利视频 | 手机看片1024欧美 | 欧美日韩影院 | 欧美特黄一级大片 | 波多野结衣一区二 | 亚洲欧美成人一区二区三区 | 激情久久网站 | 麻豆chinese新婚xxx| 国产九色| 欧美视频日韩视频 | 秋霞黄色片 | 91精品国产高清一区二区三区蜜臀 | 精品一区二区三区免费看 | 日韩一区二区三区四区 | www.激情.com| 天天澡天天狠天天天做 | 六月色婷婷 | 国产精品欧美一区二区 | 国产又粗又猛又黄又爽无遮挡 | 日韩有码专区 | 男女av免费| 欧美性猛交xxxx乱大交蜜桃 | 欧美日视频 | 天天操天 | 黄色小说在线观看视频 | 亚洲成人a∨ | 依依成人综合 | 中文字幕第15页 | 日韩理论片 | av在线免费观看网址 | 久久涩综合 | 爱情岛论坛永久入址在线 | 久久99精品国产一区二区三区 | 色婷婷亚洲 | 天天躁日日躁aaaaxxxx | 亚洲jlzzjizz少妇 | 成人αv | 超碰在线国产 | 亚洲美女综合网 | 久久精品99国产精品日本 | 91精品婷婷国产综合久久竹菊 | 福利在线观看 | 九九九久久久 | 久久露脸国产精品 | 中文字幕第一页久久 | 六月色播| 国产视频一二三区 | 久草一区二区 | 黄色录像三级 | 亚洲乱码精品久久久久.. | 国产高清sp | 日韩精品一区二区三区免费视频 | 国内9l自拍| 一级特黄欧美 | 51国产偷自视频区免费播放 | 亚洲一级av毛片 | 久热av在线| 国产97在线视频 | 91精品一本久道久久丁香狠狠躁 | 天堂av中文字幕 | 欧美日韩中文视频 | 国产人妖在线播放 | 伊人精品在线 | 欧美综合一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 日本黄色片免费看 | 色优久久 | 国产精品资源站 | 天天操天天干天天爱 | 午夜黄色福利 | 一本色道久久综合亚洲二区三区 | 欧美大黑bbbbbbbbb在线 | 午夜在线国语中文字幕视频 | 日韩国产欧美一区二区 | 四虎国产精品永久在线国在线 | 中文在线播放 | 丰满少妇久久久久久久 | 2023av在线 | 亚洲最大黄色网址 | 欧美午夜在线观看 | 日韩激情一区二区三区 | 久久久久久久久久久久久久av | 羞羞的铁拳在线观看 | 午夜日韩精品 | 欧洲性猛交 | 男女午夜免费视频 | 三级三级久久三级久久18 | 日韩第六页 | 亚洲天堂色图 | 怡红院男人的天堂 | 久久精品视频免费看 | 91高清视频免费观看 | 99这里都是精品 | www.chengren| 在线播放91 | 欧美在线日韩在线 | 亚洲性夜 | 午夜av在线免费观看 | 一本色道久久综合亚洲精品酒店 | av免费网 | 日韩欧美综合 | 亚洲欧美综合精品久久成人 | 视频精品一区二区 | 亚洲在线国产 | 国产男人的天堂 | 特级西西人体444www | 蜜桃视频污 | 91久操| 成人在线免费网站 | 日韩精品欧美在线 | 亚洲精选在线观看 | 久久免费精品国产 | 久久久久夜色精品国产老牛91 | 久艹视频在线 | 日韩激情在线视频 | 六月婷婷久久 | 五月婷婷伊人网 | 亚洲免费视频一区 | 国产无毛片 | 91久久精品一区二区别 | 噜噜吧噜噜色 | 影音先锋亚洲天堂 | 亚州视频一区二区三区 | 九九热视频在线 | 日韩成人在线网站 | 久操av| 夜夜春亚洲嫩草一区二区 | 日本精品成人 | 久热在线视频 | 国产性生活视频 | 久操久热 | 日韩av大片在线观看 | 色综合成人 | 91麻豆一区二区 | 丰满少妇中文字幕 | 亚洲区小说区 | 久久久久久久国产精品美女 | 99精品热 | 亚洲成av人片在www色猫咪 | 亚洲欧美一区在线观看 | 尤物在线视频观看 | 天堂最新| 亚洲人人夜夜澡人人爽 | 色哟哟在线播放 | 欧美日韩国产第一页 | 日韩啪| 亚洲精品乱码久久久久久不卡 | 亚洲中字在线 | 欧美激情伊人 | 日韩av网址大全 | 成人免费视屏 | 射一射| 国产三级小视频 | 亚洲精品美女视频 | 亚洲丁香婷婷 | 开心激情婷婷 | 好吊日在线 | 天天色天天射天天操 | 亚洲视频123 | www.超碰 | 又色又爽又黄无遮挡的免费视频 | 国产精品免费视频网站 | 一级做a爰片久久毛片a | 欧美国产片| 97爱爱爱| 最新中文字幕av专区 | 亚洲综合第一页 | 伊人狠狠干| 成人在线视频免费播放 | 99re在线| 欧洲色av| av国产网站| 中文字幕亚洲情99在线 | 精品久久久久久一区二区里番 | 中文字幕一区二区三区免费看 | 久久人人爽人人爽 | www.久久精品 | 国产一区二区三区欧美 | 男人视频网 | 久久久激情视频 | 爱看av| 性猛╳xxx乱大交 | 亚洲人体视频 | 日本黄色中文字幕 | 国产中文字幕不卡 | 免费欧美 | 性av一区| 国产精品久久777777换脸 | 9久精品 | a√天堂资源 | 国产91免费看 | 五月天狠狠操 | 免费国产在线观看 | 亚洲欧洲一区二区 | 在线欧美 | 二区三区在线观看 | 国产女主播一区二区三区 | 国产精品人人爱一区二区白浆 | 精品少妇一区二区三区免费观 | 亚洲日本综合 | 99久久国| 久久av网 | 福利一区二区三区四区 | 亚洲精品视频在线观看视频 | 国产亚洲欧美一区二区三区 | 午夜精品久久久久久久96蜜桃 | 亚洲高清视频免费观看 | 日韩伦理一区二区 | 久久99免费视频 | 69亚洲乱人伦 | 成人欧美一区二区三区黑人免费 | 白白色免费在线视频 | 亚洲国产精品成人综合色在线婷婷 | 日本99视频| 亚洲一级大片 | 亚洲高清av在线 | 狠狠操狠狠插 | 日韩色 | av在线免费不卡 | 色爱综合区| 国产精品视频观看 | 91精品久久久久久久99蜜桃 | 全部免费毛片 | 瑟瑟综合网 | 国产男女猛烈无遮挡 | 欧美视频一二区 | 好吊日在线 | 九九视频精品在线 | 羞羞的铁拳在线观看 | 波多野结衣精品 | 不卡视频一区二区三区 | 99re久久| 91丨porny丨国产入口 | 国产高潮国语对白精品视频网站 | 超碰人人在线 | 99国产精品欲 | 久久综合久久88 | 激情文学亚洲 | 在线观看涩涩视频 | 久久精彩免费视频 | 操女人网址 | 久久视频一区二区 | 欧美一级片网站 | 欧美大胆a | 日韩精品一区二区三区国语自制 | 日韩精品www | 精品欧美一区二区三区 | 久久视频国产 | 男人天堂新地址 | www.超碰在线.com | 成人午夜在线观看视频 | 久草福利在线观看 | 亚州视频一区二区三区 | 一区二区三区视频网站 | 91在线精品秘密一区二区 | 欧美黄色大片视频 | 亚洲区欧美| 国产女主播在线一区二区 | 人人爱人人 | 中文字幕在线观看不卡视频 | 俄罗斯女人裸体性做爰 | 免费观看视频在线观看 | 日韩美一区二区三区 | 久久神马影院 | 色女人网站 | 国产成人自拍一区 | 精品视频免费在线观看 | 久久久九九九九 | 国产夫妻视频 | 亚洲自拍中文 | 一区二区精品在线观看 | 亚洲精品热 | 色婷婷综合久久 | 爽爽影院在线免费观看 | 色黄视频在线观看 | 18疯狂做爰流白浆xxxⅹ高潮 | 久草网在线观看 | 国产成人小视频 | 成人免费毛片足控 | 亚洲狼人在线 | 色涩av | 亚洲成人www | 一级做a爰片久久毛片一 | 香蕉钻洞视频 | 欧美色拍 | 在线免费av片 | av一区免费观看 | 天堂av免费在线观看 | 污黄啪啪网 | 日韩欧美中文字幕在线视频 | 日韩黄色免费视频 | 国产高清欧美 | 高清一级片 | 西西毛片 | 少妇高潮久久久久久潘金莲 | 亚洲午夜av | 亚洲国产中文字幕 | 黄色录像片子 | 亚洲精品少妇久久久久久 | 日韩xxx视频 | 日日干狠狠干 | 中文永久免费观看 | 欧美巨大乳 | 青草国产视频 | 亚洲黄色大片 | 毛片的网址 | 国产高清亚洲 | 中文字幕在线三区 | www.x日本| 四虎激情 | 欧美亚洲一区 | 亚洲精品在线免费看 | 欧美高清二区 | 黄色在线网站 | 五月婷婷免费视频 | 日本黄色片一级 | 黄色录像片子 | 久久久一级 | 免费av网址大全 | 日韩孕交| 国产精品2019 | 精品一区视频 | 在线亚洲不卡 | 日干夜操 | 好看的中文字幕第一页 | 色网av| 国产欧美精品 | 亚洲精品国产一区黑色丝袜 | 精品中出 | 深夜福利91| 午夜精品一区二区三区在线 | 91porn九色| av免费观看一区二区 | 玖玖视频在线 | 日韩激情在线观看 | 久久久久久一区二区三区 | 91性高潮久久久久久久久 | 日韩在线影视 | 国产精品成人一区 | 欧美日韩精品久久 | 神马午夜一区二区 | 欧美性大战久久久久久久蜜桃 | 91人人看 | 青青操原 | 国产69精品久久久久久野外 | 亚洲免费网站在线观看 | 久草中文网| 日韩逼| 性色av蜜臀| 高清视频一区二区 | 国产伦子伦对白在线播放观看 | 日日夜夜天天操 | 粉嫩久久99精品久久久久久夜 | 久久九九国产 | 天天射天天色天天干 | 国产精品一区二区三区免费观看 | 星空大象在线观看免费高清 | 歪歪视频在线观看 | 中文字幕在线视频免费观看 | 国产91精品一区 | 成人性视频网站 | 黄色三级免费网站 | 久久免费播放视频 | 欧美在线观看视频一区 | 日本丰满少妇做爰爽爽 | 欧美黄色一级视频 | 欧美毛片在线观看 | 亚洲欧美系列 | 丁香花五月 | 欧美日韩大陆 | 天天摸天天做 | 色偷偷视频 | 男同毛片 | www.久久 | 久久国产99 | 免费在线黄色av | 日日夜夜综合网 | av福利社| 国产精久久 | 亚洲制服丝袜在线播放 | 亚洲国产精品成人综合久久久 | 欧美色图亚洲激情 | 天天综合av | 视色av| 久久婷婷国产麻豆91 | 免费观看视频在线观看 | 青青草这里只有精品 | 日日操夜夜操视频 | 春色导航| 中文字幕一区不卡 | 亚洲精品国产一区二 | 污片在线观看 | 99久久亚洲精品 | 成人爽爽爽 | 中文字幕自拍 | 亚洲va欧美va国产综合久久 | 久久免费公开视频 | 五月天综合网 | 男人懂的网站 | a资源在线 | 日韩中文字幕久久 | 国产精品欧美激情在线 | 一本一道久久久a久久久精品91 | 日本天堂网在线 | 操女人免费视频 | 欧美大黄视频 | 日韩精品一区二区三区免费视频 | 黄色一极片 | 日韩精品久久久久久久 | 午夜资源站 | 四虎三级 | 欧美日韩系列 | 丁香六月欧美 | 2019中文字幕在线视频 | 欧美日韩一区二区三区在线 | 欧美色图亚洲天堂 | 99热国产在线观看 | 少妇一级淫片免费放 | 国产精品aⅴ | 激情欧美一区二区三区 | 麻豆av免费 | 日日夜夜操av | 黄色网久久 | 国产精品96 | 中文字幕日韩欧美一区二区三区 | h视频在线观看网站 | 99在线精品视频免费观看软件 | 自拍欧美亚洲 | 亚洲成人经典 | 亚洲国产精品久久久久婷婷老年 | 亚洲最大在线 | 黄色片在线免费观看 | 天天色天天看 | 一级黄色免费看 | 中文字幕丝袜 | 国产做受网站 | 天堂a视频 | 亚洲一区免费看 | 伊人中文在线 | 黑人操日本 | 日韩av自拍 | 91成人激情 | 一级国产特黄bbbbb | 奇米久久 | 黄色国产在线 | 盗摄一区二区 | www.97cao.com | 中文一二三区 | 日韩精品在线一区二区三区 | 国产精品成人av久久 | 亚洲欧美自拍另类 | 看免费毛片 | 久久久青草 | 国产99999| 激情网综合 | 中文字幕一区二区在线播放 | 国产精品久久久久久久久久久久久久 | 污视频网站在线播放 | 黄色在线视频网站 | 午夜影院操 | 丝瓜av| 久久久久久久影视 | 碰碰97 | 国产精品久久久国产盗摄 | 开心成人激情 | 色在线免费观看 | 深爱五月网 | 日韩在线影院 | 免费日b视频 | 成人自拍网站 | 国产偷久久一级精品 | 亚洲91色| 国产日韩在线视频 | 成人av入口 | 91桃色在线观看 | 亚洲精品久久久久国产 | 一级一级特黄女人精品毛片 | 色爽黄| 欧美成人黄色 | 香蕉久久久久久av成人 | 亚洲爽爽网 | 欧美资源网 | 九九热这里有精品视频 | 一级性生活黄色片 | 国产真人真事毛片 | 亚洲精品国产片 | 中国一及毛片 | 91视频第一页 | 午夜精品久久久久久毛片 | 国产精品成人一区二区 | 操综合| 一区二区三区免费高清视频 | 亚洲a影院 | 饥渴少妇勾引水电工av | 国产精品96久久久久久 | 怡红院成人在线 | 51国产偷自视频区视频 | 麻豆精品国产 | 91av在线视频播放 | 色婷婷久久综合中文久久蜜桃av | 一区二区视频网 | 国产aⅴ爽av久久久久成人 | 国产精品综合在线 | 亚洲一区在线免费视频 | 波多野结衣一区二 | 久久99久久99精品免视看婷婷 | 亚洲国产无 | 亚洲欧美日韩精品在线 | 四季av一区二区凹凸精品 | 免费69视频| 黑白配高清国语在线观看 | 国产精品久久久久久99 | 亚洲精品乱码久久久久久金桔影视 | 国产a级片 | 欧美精品色 | 欧美性生交xxxxx久久久 | 日韩av高清在线观看 | 久草日韩 | 91亚洲在线| 91精产品一区一区三区40p | 国产精品23p | 人人综合网 | 午夜羞羞网站 | 国产黄色片在线观看 | 99久久精品一区 | 成人av影视在线观看 | av在线色 | 国产欧美日韩在线播放不了吗 | 欧美永久 | 亚洲精品美女视频 | 国产 欧美 日韩 在线 | 国产一级免费在线观看 | 日本高清不卡二区 | 三级福利片 | 日韩福利视频导航 | 日韩在线三级 | 欧美一区二区三区婷婷月色 | 青青色在线视频 | 亚洲成人精 | 国产二三区 | 可以看的av网站 | 偷拍视频一区 | 久久在线免费视频 | 这里只有精品6 | 2020亚洲天堂| 久久亚洲成人 | 自拍偷拍欧美日韩 | 99国产亚洲 | 日韩干| 伊人网久久久 | 国内精品福利视频 | 欧美xxxx性 | 国产一区精品在线 | 我要看一级黄色片 | 婷婷精品 | 欧美天堂网站 | 亚洲精品大全 | 日日插日日操 | 在线1区 | 一级性视频| 伊人影院99 | 色婷婷在线播放 | 五月婷婷色综合 | 一区二区三区免费看 | 国产精品久久久久一区二区国产 | 中文字幕在线不卡 | 伊人久久影院 | 九九色综合 | 天天躁日日躁aaaaxxxx | 精品国产乱码久久久久久蜜臀网站 | 天天操夜夜爱 | 国产91白丝在一线播放 | 天天干天天色 | 99视频在线免费观看 | 99在线免费观看视频 | 日本人极品人妖高潮 | 香蕉视频日本 | 黑人操日本女人 | 高跟肉丝丝袜呻吟啪啪网站av | 麻豆久久久久久久 | 日韩在线视频一区二区三区 | 动漫毛片| 69视频免费观看 | 纯爱无遮挡h肉动漫在线播放 | 91亚洲精品乱码久久久久久蜜桃 | 真实人妻互换毛片视频 | 精品久久久三级丝袜 | 中文字幕免费播放 | 国产精品96久久久久久 | 色爱成人综合 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美成人综合视频 | 秋霞网一区二区 | 国产91页 | 一区二区三区免费观看视频 | 男女激情四射网站 | 午夜色婷婷 | 久操av| 欧美黄色片免费看 | zzjizzji亚洲日本少妇 | 汇聚全球精美吹潮色xx | 中文字幕日韩精品在线 | 在线一区二区三区 | 国产一级片网站 | 亚洲3p | 激情欧美在线 | 亚洲综合图区 | 亚洲九九爱 | 国产精品看片 | 久久久久久久久久久久久大色天下 | 亚洲字幕久久 | 天天做夜夜爱 | 国产一区二区麻豆 | 奇米影视在线观看 | 一本色道久久88综合亚洲精品ⅰ | 黄色特级片 | 夜夜嗨av禁果av粉嫩avhd | 伊人天堂在线 | 国产色综合天天综合网 | 这里有精品视频 | 国产精品黄色在线观看 | 日韩精品网址 | 国产日韩精品一区二区三区在线 | 亚洲第一毛片 | 又粗又色又爽一区二区三区 | 欧美大片一区二区 | 久久精品波多野结衣 | 曰女同女同中文字幕 | 97人人爽 | 亚洲男女av | 一区二区三区日韩在线 | 色综合中文网 | 在线观看亚洲精品视频 | 婷婷激情六月 | www.狠狠操.com| 一区二区三区在线免费观看 | 国产精选av| 正在播放91 | 欧美精品网址 | 福利视频一区二区三区 | 日韩精品在线视频 | 成人动漫免费在线观看 | 亚洲乱码国产乱码精品精网站 | jzzijzzij亚洲成熟少妇 | 中出中文字幕 | 亚洲午夜激情视频 | 日韩黄色片免费看 | 成人免费观看在线视频 | 韩国三级三级三级a三级 | 中文字幕在线播放一区二区 | 美女精品久久 | 天天操天天操天天操天天操 | 欧美日韩一级视频 | 在线亚洲天堂 | 蝌蚪久久 | 校园激情av | 亚洲深夜福利视频 | 毛片网站免费在线观看 | av网址在线播放 | 亚洲一级无毛 | 在线精品视频一区 | av在线男人天堂 | 一级片免费在线播放 | 日韩欧美在线免费 | 中文字幕在线观看的网站 | 国产一区二区三区成人 | 国产一区二区三区免费 | a√天堂在线 | 国产又粗又猛又爽又黄91 | 在线看b| 天天干天天玩 | 国内精品偷拍视频 | 伊人资源 | 日本黄a三级三级三级 | 亚洲情人网 | 能直接看的av网站 | 丁香六月啪啪 | 欧美日韩一级大片 | 天堂中文资源在线观看 | 91精品入口 | 国产精品视频一区二区三区四区国 | 欧美一区二区三区免费视频 | 国内毛片毛片 | 美女色呦呦 | 久久久久综合 | 精品欧美一区二区三区免费观看 | 欧美三级韩国三级日本三斤在线观看 | 奇米网在线观看 | 手机在线毛片 | 欧美日韩xxx| 91麻豆免费视频 | 日韩青青草 | 久久综合九色综合欧美狠狠 |