PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Query SUBSELECT Umschreiben (http://www.selfphp.de/forum/showthread.php?t=20198)

ikkez 08.09.2008 17:56:00

Query SUBSELECT Umschreiben
 
Hallo auch...

ich bin hier schon den ganzen Tag dabei dran und bin langsam am verzweifeln :-\
Ich hab hier eine Webapplication die bereits fertig ist, aber für MySQL 5.x > gebaut wurde, nun läuft sie aber auf nem alten MySQL 4.0.27 und einige Querys funktionieren nicht mehr.

so auch dieser:

SELECT * FROM events WHERE id IN (SELECT MAX(id) AS id FROM events GROUP BY number) ORDER BY startdate, starttime

er gibt mir errors aus und jeglicher Versuch diesen Query umzuschreiben sind bislang fehlgeschlagen.

Mit nem self join gings irgendwie nicht so wirklich und wenn ich normal diesen benutze: SELECT title, MAX(id) AS id FROM events GROUP BY number sind die titel falsch zugeordnet zu den IDs.
Nun hatte ich versucht es anders umzuschreiben:

Zitat:

From MySQL Reference Manual for version 4.0.15......

You can often rewrite the query without a subquery:
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

This can be rewritten as:
SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;
aber bei der variante weiß ich echt nicht wo ich mit meinem group und max hin soll. das komm ich nämlich auch nicht weiter an die lösung als meine variante mit den falschen zuordnungen.

die tabelle sieht etwa so aus:

id # nummer # version # titel
1 # 1 # 1 # bla
2 # 1 # 2 # blaasd
3 # 1 # 3 # blakeks
4 # 2 # 1 # foo
5 # 2 # 2 # foobar

mein query soll mir dies liefern:


3 # 1 # 3 # blakeks
5 # 2 # 2 # foobar

also gruppiert nach nummer, und davon die höchste versionsnummer. wenn ich das normal mit max(version) group by nummer mache, stimmt der text nicht, der ist dann falsch zugeordnet.

kann jemand helfen? wäre super

ikkez 09.09.2008 15:41:27

AW: Query SUBSELECT Umschreiben
 
ich hab das jetzt mit php umgesetzt...schade das es so nicht funktioniert.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:32:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.