Ich habe ein Problem mit der Abfrage in mysql. Ich habe 2 Tabellen, Tabellen1 und Tabelle 2 erstellt. In Tabelle1 gibt es 2 Zeilen Daten, die gleichen in Tabelle2, wo es 2 Zeilen Daten und jede Tabelle 3 Felder haben. In diesem Fall möchte ich Ansicht und diese eine Abfrage machen: Man denkeIst es ein Fehler? Oder ein Fehler? Oder eine falsche Abfrage?
create view point as select table2.field2 from table1, table2;
ich es Daten in table2 zeigen, wo es zwei Reihen Daten haben. Aber das Ergebnis zeigt 4 Zeilen Daten, wobei alle 2 Zeilen die gleichen Daten sind. Wenn ich versuche, 1 Zeile in Tabelle 1 zu löschen, lösche ich 1 Daten, und ich versuche, die Abfrage wie oben einzugeben. Das Ergebnis ist korrekt, es zeigt 2 Zeilen Daten in Tabelle2. Warum ist es richtig, wenn in Tabelle 1 1 Zeile Daten und nicht wenn Tabelle 1 2 Zeilen Daten haben. Bitte, wie man es löst? Oder es ist meine falsche Abfrage.
Sie haben keine Join-Bedingungen in Ihrer 'from' oder' where' Klausel. Im Wesentlichen führen Sie einen kartesischen Join durch, bei dem für jede Zeile in jeder anderen Tabelle in Ihrer 'from'-Klausel eine Zeile angezeigt wird. Was Sie sehen, ist im Wesentlichen 2 Zeilen * 1 Zeilen = 2 Zeilen. 2 Zeilen * 2 Zeilen = 4 Zeilen. Sie müssen eine Join-Bedingung für Ihre Tabellen hinzufügen, beispielsweise einen Primärschlüssel mit einem Fremdschlüssel verknüpfen. – Rook
Vielen Dank. Jetzt weiß ich, wenn Sie die Zählung wie Ihr Beispiel oben zeigen. Aber eigentlich, meine 2 Tische gibt es keine Bedingung zum Verknüpfen. Ich möchte nur einen Wert in tables2 und table1 mit Ergebnis in new view nehmen, wenn es auch ein neues Feld in Sicht ist. Jetzt erinnere ich mich, mit Sicht muss Beziehung zwischen 2 Tabellen oder mehr. Danke Rook. –