b.id = max(a.id)

ohio

Erfahrenes Mitglied
hola, que tal?

nun denn, ich joine zwei tabellen und ermittle zunächst den höchsten wert einer ID mit max() und nun müsste ich irgendwie ne zuweisung von max(a.ID) zu b.ID in der zweiten table schaffen.

mit ->

WHERE b.id = max(a.id)

klappet ja nich, klar, gibts da ne andere lösung?

note: nutze mysql

gruss ohio
 
Hi,

also ohne groß zu überlegen würde ich einfach 2 Abfragen machen.
In der ersten holst du die MAX(id) und weist Sie einer
Variablen zu.
In der Zweiten nimmst du diese Variable einfach als Bedingung.

Ansonsten wären wir ja wieder bei den Sub's



Tex
 
hmm, ja...

das problem ist, dass diese tabellen noch weitere keys besitzen, und somit ist diese oben genannte ID nicht unique, sie ist abhängig von zB einer webserver_id, d.h. in der ersten table wären verschiedene max(ID) 's zu verschiedenen webserver zugeordnet, nun brauche ich natürlich die zuordnung auch in der gejointen tabelle für die query-zuweisung.

im prinzip könnte ich natürlich per schleife jeden webserver einzeln abfragen, nur dummerweise sind die tabellen auf lange sicht gesehen mit tausenden von sätzen bestückt was dann bei 3 webserver schon 6 selects machen würde, gibts da nicht noch ne andere lösung, entweder je webserver ein select oder ebend wie du schon sagtest ne temp table und dann die zuweisung starten, aber mit allen webservern, hoffe das war irgendwie einleuchtend, oha...

hoffe hast nen guten ratschlag für mich, wäre sehr dankbar.

gruss ohio
 
mmmh,

wäre da evtl.
PHP:
SELECT ... FROM ... WHERE WebserverID IN (1,2,7,45)

was für dich ?

Dann machst duu einfach ein Array mit den ID's (ist ja durch Komma getrennt) und packst das in die Klammern von IN()

Oder bin ich jetzt auf dem falschem Weg


Tex
 
ähh, nada.

habs dennoch gelöst -> hab einfach die webserver_id & max() in die temp geschrieben und dann ne einfach join zuordnung geschaffen, eigentlich nich weiter dramataisch :)

PHP:
$temp = "CREATE TEMPORARY TABLE pcontrl_log.temp_1 ";
$temp.= "SELECT MAX(cronjob_id) AS max_cronjob_id, webserver_id ";
$temp.= "FROM pcontrl_log.pcontrl_client_webserver_log ";
$temp.= "GROUP BY webserver_id";
$query_domain_1 = $aac_mysql->query($temp);

$temp= "SELECT  ";
$temp.= "FROM pcontrl_log.pcontrl_client_webserver_log AS a ";
$temp.= "JOIN pcontrl_log.temp_1 AS t ON t.webserver_id = a.webserver_id ";
$temp.= "WHERE t.max_cronjob_id = a.cronjob_id ";
$query_domain_2 = $aac_mysql->query($temp);

dennoch danke für die anregungen...!

gruss ohio
 

Neue Beiträge

Zurück