![]() |
Anzeige:
|
|
|||||||
| PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hi,
befassen uns gerade in der Schule mit Outer Joins. Soweit so gut, nur...wir schreiben morgen darüber Schulaufgabe und, wider meinen Erwartungen, habe ich das Thma nicht auf die Reihe bekommen Hätte vielleicht jemand kurz die Zeit, mir an Hand eines einfachen Beispiels den Outer JOin zu erklären ? Wäre super - Ist wirklcih dringend, leider Gruß Matze |
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 06.03.2005
Ort: Gera
Beiträge: 732
|
Hi,
vielleicht helfen dir diese 2 Links: http://sql.1keydata.com/de/sql-outer-join.php http://aktuell.de.selfhtml.org/artik...leftright_join Wobei ich bemerken muss das man outer joins echt fast nie braucht ^^ mfg Phill
__________________
Aus Fehlern wird man klug, drum ist einer nicht genug! Ich bin nur ein Opfer des Kapitalismus. |
|
|
|
|
|
#3 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hi Phil und danke für die schnelle Antwort.
Ja, auf selfhtml hab ich mich auch schon rungesucht Habe hier mal einen Outer Join rauskopiert SELECT RechnungsNr, KundenNr, Betrag, Rechnungen_Oktober.Kartennummer, Firma, Inhaber, Ablaufdatum FROM Rechnungen_Oktober LEFT JOIN Kreditkarte ON Kreditkarte.Kartennummer = Rechnungen_Oktober.Kartennummer Kann man den so verstehen: Wir wählen Rechnungnr, Kundennr, Betrag, Rechnung_Oktober.Kartennummer(dieses Feld ist in einer anderen Tabelle "Kartennummer" ), Firma, Inhaber und Ablaufdatum von der Tabelle Rechnungen_Oktober Mit Left Join verweisen wir dann, dass die Schnittmenge beider Tabellen und die der linken ( in diesem Fall Rechnungnr, Kundennr, Betrag... ) ausgegeben werden Kartennummer ist dann wieder eine eigene Tabelle, von der wir das Feld Kreditkarte auswählen Ist das soweit richtig ??? Und was macht genau " Kreditkarte ON Kreditkarte.Kartennummer = Rechnungen_Oktober.Kartennummer " dieser Satz ? |
|
|
|
#4 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.09.2005
Ort: Dresden
Alter: 21
Beiträge: 835
|
von outer joins habe ich noch nie etwas gehört. die heißen normalerweise einfach nur JOINS.
Ansonsten war deine Erklärung korrekt. Code:
SELECT rechnungsnr, kundennr, betrag, R.kartennummer, firma, inhaber, ablaufdatum FROM rechnungen_oktober R LEFT JOIN kreditkarte K ON K.kartennummer = R.kartennummer Du wirst die Arbeit schon packen |
|
|
|
|
|
#5 (Direktlink) | |
|
Gast
Beiträge: n/a
|
Zitat:
Hi Bozz; auch danke schonmal für die Antwort. Uf..da bin ich ja schon ein bisschen beruhigter, dass der Teil stimmt Aber: Du schreibst, dass durch diesen letzen Befehl beide Datenfelder ausgelesen werden, egal ob sie übereinstimmen oder nicht ( Rechungen_oktober und Kreditkarten ) Aber beide werden doch aus der gleichen Tabelle ( Kartennummer ) genommen, dann bräuchte man diesen Abgleich doch gar nicht, oder? |
|
|
|
|
|
#6 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.09.2005
Ort: Dresden
Alter: 21
Beiträge: 835
|
Hi,
dein Problem ist, dass du Tabellen und Spalten verwechselst. Die Tabellen sind kreditkarte und rechnungen_oktober und aus diesen beiden Tabellen wird jeweils die Spalte kartennummer ausgewählt. Bei einem LEFT JOIN werden alle Zeilen der links vom JOIN stehenden Tabelle ausgegeben. Bei einem INNER JOIN werden nur die Zeilen ausgegeben, bei denen es Übereinstimmungen mit dem Vergleichskriterium gab. Meines Erachtens würde dieser sich hier auch besser anbieten. |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|