ursus contionabundo: Unterschiedliche Werte bei der Ausgabe

Beitrag lesen

Hallo,

was ich nicht verstehe ist, warum bekomme ich unterschiedliche Daten ausgelesen wenn ich folgende beide Abfragen starte?

SELECT * 
FROM  `artikel_ausgeliehen` 
WHERE  `aa_artikelID` LIKE  '3ba00ce0c368a8537534fb3aab9af3d1'
AND  `aa_projektID` LIKE  '9e0376a5983764433a9662e917741cdd'
AND  `aa_datum` =  '2019-01-31'

Im oben genannten Code erhalte ich genau einen Datensatz, wie es auch sein soll.

Aber was soll das (teure) LIKE? Warum nicht einfach "="?

In meiner zweiten Abfrage, die ich eigentlich benötige bekomme ich allerdings 50 Einträge, warum?

SELECT aa_id, aa_artikelID, aa_projektID, aa_menge, aa_datum, aa_status, aa_grund, aa_code,
       p_code, p_titel

FROM artikel_ausgeliehen

LEFT JOIN projekte ON projekte.p_code = artikel_ausgeliehen.aa_projektID
LEFT JOIN artikel_verlust_defekt ON artikel_verlust_defekt.avd_code = artikel_ausgeliehen.aa_code

WHERE aa_datum =  '2019-01-31' AND aa_artikelID =  '3ba00ce0c368a8537534fb3aab9af3d1'

Für den 31.01.2019 und dem ausgewählten Artikel ist nur ein Datensatz vorhanden. Was mache ich im oben genannten Code falsch?

1.)

"LEFT JOIN funktioniert ähnlich wie INNER JOIN mit dem Unterschied, dass Einträge der linken Tabelle keine Verbindung zu den Daten der rechten Tabelle haben müssen, um selektiert zu werden."

Bist Du Dir sicher, dass Du einen LEFT JOIN willst?

2.)

Wenn Du hier Quelltext markierst, der SQL ist, dann kannst Du hier im Forum ~~~SQL angeben, statt ~~~PHP oder ~~~HTML.

Im Fall von SQL statt HTML sparst Du sogar einen Tastendruck.