gpt4 book ai didi

mysql - 连接两个表

转载 作者:行者123 更新时间:2023-11-28 23:27:20 25 4
gpt4 key购买 nike

Table 1                              
ID MONTH1 NUM NUM2
XO3 4 0
XO1 DEC 1 1
XO1 JAN 1 2
XO2 DEC 3 3
XO2 JAN 3 4

Table 2
ID MONTH1 NUM
XO3
XO1 DEC
XO1 JAN
XO2 JAN

1>

UPDATE Table1 
INNER JOIN TABLE2 ON Table1.ID = TABLE2.ID
SET TABLE2.NUM = [Table1].[NUM]
WHERE (((TABLE2.MONTH1)=Table1.MONTH1) And ((TABLE2.ID)=Table1.ID));

2>

UPDATE Table2 
INNER JOIN Table1 ON (Table2.MONTH1 = Table1.MONTH1) AND (Table2.ID = Table1.ID)
SET Table2.NUM = [Table1].[NUM];

3>

Now 
Table 2 shows
ID MONTH1 NUM
XO3
XO1 DEC 1
XO1 JAN 1
XO2 JAN 3

所以我的问题是 1> 和 2> 查询之间的区别是什么,因为这两个查询中的任何一个都给我 3> ,如果我运行 1> 查询然后我得到 3> 作为答案,因为表显示更新的列NUM 为 1,2,3 或如果我运行第二个查询 2>,它再次将更新的列 NUM 显示为 1,2,3

请告诉我区别,谢谢。

最佳答案

查询是等价的..区别仅在于连接条件方面

在第一个中,连接条件部分在 on 子句中,其余部分在 where 中

  ON Table1.ID = TABLE2.ID 
WHERE (((TABLE2.MONTH1)=Table1.MONTH1) And ((TABLE2.ID)=Table1.ID));

在第二个中,连接仅在 on 子句中

   ON (Table2.MONTH1 = Table1.MONTH1) AND (Table2.ID = Table1.ID) 

那么他们是一样的

关于mysql - 连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com