Falscher JOIN ?

Termos

Mitglied
hallo Community,

Folgendes Problem.

Ich habe 2 Tabellen

BuchLeihen
BarcodePKBarcodeFK
ISBNnot nullISBNnot null



In Buch stehen die 3 Datensätze

Barcode: ISBN
101000 3826692918
101001 3826692918
101002 3826692918

In Ausleihen steht

Barcode: ISBN Status
101001 3826692918 geliehen


Wenn ich jetzt beide mit JOIN (INNER,LEFT,RIGHT) verbinde bekomme ich immer Alle 3 Bücher als geliehen angezeigt ...

Ich will aber alle Spalten der Linken (Buch) sehen und rechts nur was wirklich anhand des barcodes geliehen ist ....


Habe ich ein Syntaktisches oder Design Problem?


Vielen dank
 
Select * From Buch LEFT JOIN Leihen ON Buch.ISBN = Leihen.ISBN WHERE Leihen.ISBN = '3826692918'



Hmm jetzt suche ich natürlich nach der ISBN ;/ Das vllt auch Doof ...

Select * From Buch LEFT JOIN Leihen ON Buch.ISBN = Leihen.ISBN WHERE Leihen.Barcode='101002'

So sieht es mit Barcode aus ... Selbes Ergebnis ... keine "NULL" zeilen
 
Zuletzt bearbeitet:
Hmm...

Wenn nach Buch. ISBN filtere, kommen wieder die 3 Bücher, werden aber alle 3 mit dem Barcode des geliehenen Buchs verknüpft...

Filter ich Buch nach Barcode kommt nur das eine Buch raus... Das ist mir logisch...


Hab ich Vllt einen Fehler in der Datenbank oder einfach nur ein riesen denkfehler?
 
Die Verknüpfung müsste glaub über ISBN und Barcode gehen.

SQL:
Select
  * 
From
  buch  AS b
  LEFT JOIN leihen AS l
    ON b.isbn = l.isbn
    AND b.barcode = l.barcode
WHERE 
    b.isbn='3826692918'

Wenn der Barcode eindeutig ist, musst du nicht mal die isbn verknüpfen
SQL:
Select
  * 
From
  buch  AS b
  LEFT JOIN leihen AS l
    ON b.barcode = l.barcode
WHERE 
    b.isbn='3826692918'
 
Zuletzt bearbeitet von einem Moderator:
Zurück