Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Join mit Limit 1? (https://www.delphipraxis.net/179759-join-mit-limit-1-a.html)

Mavarik 30. Mär 2014 12:25

Datenbank: MySQL • Version: 5 • Zugriff über: Delphi

Join mit Limit 1?
 
Hallo Zusammen!

2h Googlen und alle Beispiele passen nicht...

Ich habe 2 Tabellen

Table 1:

ID
bla1
bla2
TimeStamp

Table 2:

ID
TBL_1_ID
Infotext

Von den Einträgen in Table2 zeigen n Einträge über das TBL_1_ID auf Table1;

Gesucht ist die richtige MySQL Anweisung die
Alle Einträge von Table 1 auflistet wo Bla2="huhu" ist und nur den letzten Eintrag aus der Table2 mit den richtigen TBL_1_ID.

Bitte korrigieren:

SELECT Bla1,InfoText from Table1 Join Table2 on Table1.ID=Table2.TBL_1_ID Order by Table2.ID DESC LIMIT 1 where Bla2="huhu" Order by Table1.ID ASC

Danke

DeddyH 30. Mär 2014 12:36

AW: Join mit Limit 1?
 
Etwa so?
SQL-Code:
SELECT
  T1.*, T2.*
FROM
  Table1 T1, Table2 T2
WHERE
  T1.Bla2 = 'huhu'
AND
  T2.ID =
  (SELECT
     MAX(ID)
   FROM
     Table2
   WHERE
     TBL_1_ID = T1.ID)

Mavarik 30. Mär 2014 12:57

AW: Join mit Limit 1?
 
Funktioniert nicht!

Zeigt immer noch alle an wie bei einem Join!

Mavarik 30. Mär 2014 13:06

AW: Join mit Limit 1?
 
Habs:

SELECT A.*, B.* FROM TBL1 A, TBL2 B where (bla1="huhu") AND B.ID = (SELECT C.ID FROM TBL2 C WHERE A.ID=C.TBL_1_ID Order BY B.ID DESC LIMIT 1) order by ID;

DeddyH 30. Mär 2014 13:09

AW: Join mit Limit 1?
 
Die IDs sind aber in beiden Tabellen auto_inc?

[edit] Wenn mir jetzt mal jemand den Unterschied zwischen
SQL-Code:
Order BY B.ID DESC LIMIT 1
und
SQL-Code:
MAX(B.ID)
erklären könnte :gruebel:[/edit]

Mavarik 30. Mär 2014 13:32

AW: Join mit Limit 1?
 
Zitat:

Zitat von DeddyH (Beitrag 1254016)
Die IDs sind aber in beiden Tabellen auto_inc?

JA

Leider wird so kein Eintrag aus Table1 gezeigt, wenn kein Eintrag in Table2 existiert!

Noch ne Idee dazu?

DeddyH 30. Mär 2014 13:35

AW: Join mit Limit 1?
 
SQL-Code:
...
Where b.id = (...) or b.id is null

Mavarik 30. Mär 2014 13:42

AW: Join mit Limit 1?
 
Zitat:

Zitat von DeddyH (Beitrag 1254019)
SQL-Code:
...
Where b.id = (...) or b.id is null

Leider auch nicht...

Wenn überhaupt (...) is null

Aber es wird dann für jeden Eintrag der 1. in der Tabelle angezeigt...

Mavarik 30. Mär 2014 13:46

AW: Join mit Limit 1?
 
Ich glaube ich mache lieber ne For-Schleife und baue die Tabelle selber zusammen...
Obwohl ich das vermeiden wollte...

EarlyBird 30. Mär 2014 14:54

AW: Join mit Limit 1?
 
eventuell so:
Code:
SELECT T1.*, T3.* FROM Tabelle1 T1
  LEFT OUTER JOIN
  (SELECT MAX(tb2_ID) AS tb2_ID, tb1_ID FROM tabelle2 GROUP BY tb1_D) T2
     ON T1.tb1_ID = T2.tb2_ID
  INNER JOIN
  (SELECT tb2_ID, tb1_id, InfoText FROM tabelle2) T3
     ON T2.tb2_ID = T3.tb2_ID
WHERE T1.Bla2 = 'huhu'


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz