Unterschiedliche Werte bei der Ausgabe
bearbeitet von ursus contionabundo> Hallo,
>
> was ich nicht verstehe ist, warum bekomme ich unterschiedliche Daten ausgelesen wenn ich folgende beide Abfragen starte?
>
> ~~~SQL
> 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 LIKE?
> In meiner zweiten Abfrage, die ich eigentlich benötige bekomme ich allerdings 50 Einträge, warum?
>
> ~~~SQL
> 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.