Hallo Uwi,
ich habe eine anwendung von einem server mit einer
4.1.15 MySql datenbank auf einen server mit einer
4.0.24 MySql datenbank verschoben und nun klappen
die wichtigsten abfragen nicht mehr was wohl daran liegt
das sie aus mehreren selects in einer abfrage bestehen .
Subqueries nennt man das.
Wie Dir das MySQL-Handbuch, Abschnitt Subquery-Syntax sagt, werden Subqueries erst seit der Version 4.1 unterstützt.
SELECT x AS ref, geb_id, user_id AS uid, typ, hitpoints,
( SELECT COUNT( x ) FROM War_Schlacht WHERE x = ref ),
( SELECT name FROM user WHERE id=uid )
FROM Lageplan WHERE ( ".$OR." ) Order by x LIMIT 144
Vielleicht kannst Du die Abfrage umschreiben, so dass Du Dein Ergebnis auch ohne Subqueries erreichst. Dein zweites Subselect sollte sich durch einen Join ersetzen lassen:
~~~sql
SELECT
lp.x AS ref,
lp.geb_id,
lp.user_id AS uid,
lp.typ,
lp.hitpoints,
( SELECT COUNT(x)
FROM War_Schlacht
WHERE x = ref ),
user.name
FROM Lageplan lp
INNER JOIN user on user.id = lp.user_id
WHERE [...]
ORDER BY x
LIMIT 144
Nun bleibt nur noch ein Subquery übrig. Vielleicht kannst Du den MAX-CONCAT-Trick, auf COUNT() umbauen, wenn Du unbedingt auf MySQL 4.0.x angewiesen bist.
Freundliche Grüße
Vinzenz