Beitritt zu zwei Tischen

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 

Also meine Frage ist, was ist der Unterschied zwischen 1> und 2> Abfragen als einer der beiden die Abfragen geben mir 3>, wenn ich 1> Abfrage dann bekomme ich 3> als Antwort, weil Tabelle zeigt die aktualisierte Spalte NUM als 1 , 2,3 oder wenn ich die zweite Abfrage 2> es wieder zeigt die aktualisierte Spalte NUM als 1,2,3

Bitte sagen Sie mir den Unterschied danken Ihnen.

Die Abfrage ist gleichbedeutend. Der Unterschied liegt nur im Aspekt der Join-Bedingung

in der ersten die Join-Bedingung ist zum Teil in on Klausel und und der Rest in wo

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

In der zweiten ist die Verknüpfung nur in der Klausel

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

dann sind sie gleich

Ja beide Abfrage ergibt das gleiche Ergebnis dann was ist der Unterschied? rechts mal sehen

  1. Abfrage

     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)); 

In dieser Abfrage Table1.ID = TABLE2.ID man alle Übereinstimmungen der datasätze ( Table1.ID = TABLE2.ID ) aus beiden Tabellen, dann Table1.ID = TABLE2.ID du Filterkriterien wie WHERE (((TABLE2.MONTH1)=Table1.MONTH1) And ((TABLE2.ID)=Table1.ID)) und dann die Aktualisierungsoperation am endgültigen Ergebnis durchführen.

  1. Abfrage

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

In dieser Abfrage (Table2.MONTH1 = Table1.MONTH1) AND (Table2.ID = Table1.ID) man passende datasätze mit passenden Kriterien wie (Table2.MONTH1 = Table1.MONTH1) AND (Table2.ID = Table1.ID)

so dass dies effizienter beim Abrufen von Aufzeichnungen, da keine zusätzlichen Anstrengungen erforderlich für die Filterung datasätze, so führt zu einer besseren performance.