![]() |
Datenbank: MySQL • Version: 5.6 • Zugriff über: UniDAC
MySQL Probleme mit einem Left Join
Hi,
ich habe ein Problem mit einem SQL-Statement.
Code:
Soll alle Felder der Tabelle "ersatzfzg", und zusätzlich ein Feld mit der Anzahl hinterlegter Bilder aus der Tabelle "bilder", liefern.
Select e.*, count(b.guid) as bilder from ersatzfzg as e left join bilder as b on e.kennzeichen=b.kennzeichen where e.betriebguid='{D30C179A-E8D8-41B5-937E-82DE8F55072C}' and e.aktiv=1 order by e.ID
Die Tabelle "ersatzfzg" umfasst 9 Datensätze (alle im Feld "aktiv" = 1). In der Tabelle Bilder sind 2 Datensätze. Wenn nun keines der Kennzeichen in Tabelle "bilder" gefunden wird, wird lediglich der 1. Datensatz zurück geliefert. Wenn ich einen Datensatz in "erstazfzg" hinzufügen, wo dann das Kennzeichen zu denen in der Tabelle "bilder" passt, wird nur dieser neue Datensatz zurückgeliefert. Benötigen würde ich jedoch alle Datensätze aus der Tabelle "ersatzfzg" wo aktiv=1 ist und die betriebguid passt, und halt wenn keine Datensätze in der Tabelle "bilder" gefunden werden, dann halt eine 0 geliefert wird. So wie ich left join verstanden habe, sollte das so eigentlich funktionieren. Oder macht man das anders? |
AW: MySQL Probleme mit einem Left Join
SQL-Code:
Select
e.*, bilder from ersatzfzg as e left join ( select e.kennzeichen, count( bguid) as bilder from bilder group by kennzeichen ) b on e.kennzeichen=b.kennzeichen where e.betriebguid='{D30C179A-E8D8-41B5-937E-82DE8F55072C}' and e.aktiv=1 order by e.ID; |
AW: MySQL Probleme mit einem Left Join
Danke.
Kann man sagen, dass deine Lösung mit dieser
SQL-Code:
identische Ergebnisse liefert?
Select e.*,
(Select Count(ID) from bilder where kennzeichen=e.kennzeichen) as Count from ersatzfzg as e where e.betriebguid='{D30C179A-E8D8-41B5-937E-82DE8F55072C}' and e.aktiv=1 order by e.ID |
AW: MySQL Probleme mit einem Left Join
Sollte ja. Die eine Lösung halt über SubQuery die andere als deferred table.
|
AW: MySQL Probleme mit einem Left Join
Danke für die Erleuchtung :idea: ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz