成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql里面on怎么用 mysql中on的用法

mysql join中,on和where的區(qū)別

關(guān)于 “A LEFT JOIN B ON 條件表達(dá)式” 的一點(diǎn)提醒

創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元東安做網(wǎng)站,已為上家服務(wù),為東安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

ON 條件(“A LEFT JOIN B ON 條件表達(dá)式”中的ON)用來決定如何從 B 表中檢索數(shù)據(jù)行,即使on中包含有A表中的列的限制條件,也不會(huì)過濾A的任何數(shù)據(jù)(A的數(shù)據(jù)只會(huì)通過where過濾)。

如果 B 表中沒有任何一行數(shù)據(jù)匹配 ON 的條件,將會(huì)額外生成一行所有列為 NULL 的數(shù)據(jù)

在匹配階段 WHERE 子句的條件都不會(huì)被使用。僅在匹配階段完成以后,WHERE 子句條件才會(huì)被使用。它將從匹配階段產(chǎn)生的數(shù)據(jù)中檢索過濾。

讓我們看一個(gè) LFET JOIN 示例:

01

mysql CREATE TABLE `product`

(

02

`id` int(10)

unsigned NOT NULL auto_increment,

03

`amount` int(10)

unsigned default NULL,

04

PRIMARY KEY (`id`)

05

)

ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

06

07

mysql CREATE TABLE `product_details`

(

08

`id` int(10)

unsigned NOT NULL,

09

`weight` int(10)

unsigned default NULL,

10

`exist` int(10)

unsigned default NULL,

11

PRIMARY KEY (`id`)

12

)

ENGINE=MyISAM DEFAULT CHARSET=latin1

13

14

mysql INSERT INTO product

(id,amount)

15

VALUES (1,100),(2,200),(3,300),(4,400);

16

Query

OK, 4 rows affected

(0.00 sec)

17

Records:

4 Duplicates: 0 Warnings: 0

18

19

mysql INSERT INTO product_details

(id,weight,exist)

20

VALUES (2,22,0),(4,44,1),(5,55,0),(6,66,1);

21

Query

OK, 4 rows affected

(0.00 sec)

22

Records:

4 Duplicates: 0 Warnings: 0

23

24

mysql SELECT * FROM product;

25

+----+--------+

26

|

id | amount |

27

+----+--------+

28

|

1 | 100 |

29

|

2 | 200 |

30

|

3 | 300 |

31

|

4 | 400 |

32

+----+--------+

33

4 rows in set (0.00

sec)

34

35

mysql SELECT * FROM product_details;

36

+----+--------+-------+

37

|

id | weight | exist |

38

+----+--------+-------+

39

|

2 | 22 | 0 |

40

|

4 | 44 | 1 |

41

|

5 | 55 | 0 |

42

|

6 | 66 | 1 |

43

+----+--------+-------+

44

4 rows in set (0.00

sec)

45

46

mysql SELECT * FROM product LEFT JOIN product_details

47

ON (product.id

= product_details.id);

48

+----+--------+------+--------+-------+

49

|

id | amount | id | weight | exist |

50

+----+--------+------+--------+-------+

51

|

1 | 100 | NULL | NULL | NULL |

52

|

2 | 200 | 2 | 22 | 0 |

53

|

3 | 300 | NULL | NULL | NULL |

54

|

4 | 400 | 4 | 44 | 1 |

55

+----+--------+------+--------+-------+

56

4 rows in set (0.00

sec)

ON 子句和 WHERE 子句有什么不同?

一個(gè)問題:下面兩個(gè)查詢的結(jié)果集有什么不同么?

1

1. SELECT * FROM product LEFT JOIN product_details

2

ON (product.id

= product_details.id)

3

AND product_details.id=2;

4

2. SELECT * FROM product LEFT JOIN product_details

5

ON (product.id

= product_details.id)

6

WHERE product_details.id=2;

用例子來理解最好不過了:

01

mysql SELECT * FROM product LEFT JOIN product_details

02

ON (product.id

= product_details.id)

03

AND product_details.id=2;

04

+----+--------+------+--------+-------+

05

|

id | amount | id | weight | exist |

06

+----+--------+------+--------+-------+

07

|

1 | 100 | NULL | NULL | NULL |

08

|

2 | 200 | 2 | 22 | 0 |

09

|

3 | 300 | NULL | NULL | NULL |

10

|

4 | 400 | NULL | NULL | NULL |

11

+----+--------+------+--------+-------+

12

4 rows in set (0.00

sec)

13

14

mysql SELECT * FROM product LEFT JOIN product_details

15

ON (product.id

= product_details.id)

16

WHERE product_details.id=2;

17

+----+--------+----+--------+-------+

18

|

id | amount | id | weight | exist |

19

+----+--------+----+--------+-------+

20

|

2 | 200 | 2 | 22 | 0 |

21

+----+--------+----+--------+-------+

22

1

row in set (0.01

sec)

第一條查詢使用 ON 條件決定了從 LEFT JOIN的 product_details表中檢索符合的所有數(shù)據(jù)行。

第二條查詢做了簡單的LEFT JOIN,然后使用 WHERE 子句從 LEFT JOIN的數(shù)據(jù)中過濾掉不符合條件的數(shù)據(jù)行。

再來看一些示例:

01

mysql

02

mysql SELECT * FROM product LEFT JOIN product_details

03

ON product.id

= product_details.id

04

AND product.amount=100;

05

+----+--------+------+--------+-------+

06

|

id | amount | id | weight | exist |

07

+----+--------+------+--------+-------+

08

|

1 | 100 | NULL | NULL | NULL |

09

|

2 | 200 | NULL | NULL | NULL |

10

|

3 | 300 | NULL | NULL | NULL |

11

|

4 | 400 | NULL | NULL | NULL |

12

+----+--------+------+--------+-------+

13

4 rows in set (0.00

sec)

所有來自product表的數(shù)據(jù)行都被檢索到了,但沒有在product_details表中匹配到記錄(product.id = product_details.id AND product.amount=100 條件并沒有匹配到任何數(shù)據(jù))

01

mysql SELECT * FROM product LEFT JOIN product_details

02

ON (product.id

= product_details.id)

03

AND product.amount=200;

04

+----+--------+------+--------+-------+

05

|

id | amount | id | weight | exist |

06

+----+--------+------+--------+-------+

07

|

1 | 100 | NULL | NULL | NULL |

08

|

2 | 200 | 2 | 22 | 0 |

09

|

3 | 300 | NULL | NULL | NULL |

10

|

4 | 400 | NULL | NULL | NULL |

11

+----+--------+------+--------+-------+

12

4 rows in set (0.01

sec)

同樣,所有來自product表的數(shù)據(jù)行都被檢索到了,有一條數(shù)據(jù)匹配到了。

MySQL中的join以及on條件的用法

join 經(jīng)常用來做關(guān)聯(lián)查詢,可以把兩張或者多張表用通過關(guān)聯(lián)條件關(guān)聯(lián)起來做數(shù)據(jù)查詢

在使用join查詢的時(shí)候要區(qū)分主表和附表,jion ...on .....and

on: 表之間的關(guān)聯(lián)條件

and:對(duì)附表做篩選

內(nèi)連接,兩個(gè)關(guān)聯(lián)的表都為主表,所以他們的做條件篩選的順序是:先連接,后篩選。此時(shí) join ...on ... and =join...on... where ....

左連接,這時(shí)候左邊的表就是主表,所以,主表的數(shù)據(jù)會(huì)全部展示出來,右邊的表為附表,此時(shí)on連接后在通過and進(jìn)行篩選的條件對(duì)主表不起作用,只對(duì)附表起作用。先篩選再連接

右連接,右邊的表為主表,左邊表變成附表,如果on后面又and 做篩選條件的話,和left join一樣 也是先篩選后連接。

mysql中on,in,as,where如何用,意思是什么?

Where查詢條件,on內(nèi)外連接時(shí)候用,as作為別名,in查詢某值是否在某條件里

當(dāng)前文章:mysql里面on怎么用 mysql中on的用法
本文地址:http://jinyejixie.com/article14/hpcide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站域名注冊(cè)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
延津县| 嘉鱼县| 集贤县| 临海市| 弥渡县| 民权县| 博罗县| 凌源市| 玛曲县| 昌黎县| 济宁市| 聊城市| 浠水县| 高淳县| 罗江县| 罗山县| 靖远县| 蓬安县| 宝坻区| 桦川县| 新龙县| 工布江达县| 武城县| 普安县| 东城区| 集安市| 临沂市| 古丈县| 东明县| 高州市| 揭东县| 墨竹工卡县| 徐州市| 逊克县| 藁城市| 易门县| 通山县| 将乐县| 海宁市| 阿克陶县| 绥滨县|