/ / Wie führe ich eine Abfrage korrekt aus, die 2 Tabellen mit 2 verschiedenen Feldern, die in diesen Tabellen enthalten sind, verbindet? - mysql, sql, Join, Inner-Join

Wie richtig führen Sie eine Abfrage aus, die 2 Tabellen mit 2 verschiedenen Feldern, die in diesen Tabellen sind, verbindet? - mysql, sql, Join, Inner-Join

Ich bin ziemlich neu in SQL und habe das folgende Problem mit einer einfachen Abfrage.

Ich muss eine Abfrage durchführen, dass BEITRETEN 2 Tische. Die Join-Operation befindet sich nicht in einem einzelnen Feld, sondern muss in zwei verschiedenen Feldern mit demselben Namen für diese Tabellen ausgeführt werden.

Also habe ich so etwas gemacht:

SELECT count(*)
FROM TID003_ANAGEDIFICIO anagraficaEdificio
INNER JOIN TID002_CANDIDATURA candidatura ON(candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR, candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN)
WHERE anagraficaEdificio.FLG_GRA=1;

Aber bei der Durchführung dieser Abfrage habe ich die folgende Fehlermeldung angezeigt:

Operand sollte 1 Spalte (n) enthalten

Wie Sie sehen können, versuche ich, diesen beiden Tabellen beizutreten, und der Join basiert auf 2 Feldern:

ON(candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR, candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN)

Was ist falsch? Was vermisse ich? Wie kann ich dieses Problem beheben?

Antworten:

1 für die Antwort № 1

Benutzen AND um die zusätzlichen Join-Bedingungen anzugeben, wenn Sie mehrere Bedingungen gleichzeitig verwenden möchten:

SELECT count(*)
FROM TID003_ANAGEDIFICIO anagraficaEdificio
JOIN TID002_CANDIDATURA candidatura
ON candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR
AND candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN
WHERE anagraficaEdificio.FLG_GRA = 1;

Wenn die Spaltennamen der verknüpften Spalten in beiden Tabellen identisch sind, können Sie eine Verknüpfung mit der Tabelle verwenden USING Prädikat stattdessen:

JOIN TID002_CANDIDATURA candidatura USING (PRG_PAR, PRG_CAN)

Dies wird nicht in allen Datenbanken unterstützt, sondern in MySQL (siehe Dokumentation für mehr Informationen).