MySQL Forums
Forum List  »  German

bei NATURAL JOIN eine Spalte ignorieren
Posted by: Alexander Kimmig
Date: February 19, 2016 04:56PM

Hallo,

ich habe einige Tabellen (myISAM) welche durch Fremdschlüssel miteinander verbunden sind. Außerdem habe ich in jeder Tabelle eine Spalte "changed" mit dem letzten Änderungs-Timestamp, also z.B.

TabelleA
* AID (INT)
* name (VARCHAR)
* changed (TIMESTAMP)

TabelleB
* BID (INT)
* AID (INT, Fremdschlüssel)
* anzahl (INT)
* changed (TIMESTAMP)

Dadurch dass beide Tabellen eine Spalte "changed" enthalten funktioniert ein

SELECT * FROM TabelleA NATURAL JOIN TabelleB;

leider nicht mehr. Der JOIN soll natürlich nur für den Fremdschlüssel "AID" gelten, nicht für "changed".

Gibt es eine Möglichkeit dem NATURAL JOIN zu sagen, dass eine Spalte generell ignoriert wird oder dass nur Schlüssel gejoint werden?

Die Alternative mit INNER JOIN ist immer recht aufwändig:

SELECT * FROM TabelleA INNER JOIN TabelleB ON (TabelleA.AID=TabelleB.AID);

und hat auch noch den Nachteil, dass die "AID"-Spalte nicht mehr eindeutig ist... Die "changed"-Spalte bräcuhte ich dabei nicht unbedingt.

Danke schon im Voraus
A. Kimmig

PS: die changed-Spalte umzubennenen wäre keine gute Alternative, da ich insgesamt ca. 50 Tabellen habe, da müsste ich jeder Tabelle einen eigenen "changed"-Spaltennamen geben was recht umständlich wird...

Options: ReplyQuote


Subject
Views
Written By
Posted
bei NATURAL JOIN eine Spalte ignorieren
1365
February 19, 2016 04:56PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.