Schrift
[thread]12679[/thread]

Probleme MySQL 4 / MySQL5

Leser: 1


<< >> 4 Einträge, 1 Seite
Madj2k
 2008-10-28 13:03
#115784 #115784
User since
2008-10-28
2 Artikel
BenutzerIn
[default_avatar]
Servus...

Ich habe da ein kleines Problem mit einer Datenbankabfrage über MySQL. Die Abfrage wurde auf nem Server mit MySQL 5 entwickelt und soll jetzt auf einem Server mit MySQL 4 zum Laufen gebracht werden. Die Abfrage enthält - so weit ich das sehe - nur Standard-Befehle, die auch von MySQL 4 beherrscht werden müssten. Wenn ich die Befehle einzeln durchführe, funktionieren Sie auch - nicht aber als Ganzes. Da bekomme ich den Fehler "You have an error in your SQL - Syntax". Mit MySQL 5 läuft es - nur nicht mit MySQL 4. Kann mir jemand auf die Sprünge helfen, wo hier genau das Problem liegt?

Hier die Abfrage, die mir Sorgen bereitet - wenn ihr sonst noch Infos braucht, einfach schreiben :-)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SELECT mailing_list_id, mailing_list_name, description, (

SELECT COUNT( nl_at_mailinglist_receiver.receiver_id )
FROM nl_at_mailinglist_receiver, nl_at_letter_receiver
WHERE (

SELECT status FROM nl_receiver
WHERE nl_at_mailinglist_receiver.receiver_id = nl_receiver.receiver_id
) = 'ok'
AND nl_at_mailinglist_receiver.mailing_list_id = nl_mailing_list.mailing_list_id
AND nl_at_letter_receiver.letter_id =0
AND nl_at_letter_receiver.receiver_id = nl_at_mailinglist_receiver.receiver_id

) AS receiver_cnt, (

SELECT COUNT( receiver_id )
FROM nl_at_mailinglist_receiver
WHERE (

SELECT status FROM nl_receiver
WHERE nl_at_mailinglist_receiver.receiver_id = nl_receiver.receiver_id
) = 'ok'
AND nl_at_mailinglist_receiver.mailing_list_id = nl_mailing_list.mailing_list_id

) AS member_cnt
FROM nl_mailing_list
ORDER BY mailing_list_name
LIMIT 0 , 30



Bin für jede Idee dankbar :-)

Lg,

Steffen
pq
 2008-10-28 13:33
#115785 #115785
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
welche version ist es? subselects gehn erst ab 4.1.
desweiteren beschwert sich mysql meist genau über die stelle, an der der fehler auftritt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Madj2k
 2008-10-28 13:49
#115787 #115787
User since
2008-10-28
2 Artikel
BenutzerIn
[default_avatar]
Servus....

Danke für die schnelle Antwort. Also der MySQL-Client ist Version 4.0.27. Das spricht dann sehr für die Subselects als Ursache. Auch der Fehler deutet darauf hin - er gibt mir den ersten Subselect als Fehler aus:

Code: (dl )
1
2
3
#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'SELECT COUNT( nl_at_mailinglist_receiver.receiver_id )
FROM nl


Die Frage wäre dann aber, ob es eine elegante Lösung gibt, dieses Problem zu umgehen - oder ob ich tatsächlich alle Abfrage-Teile und die damit verbundenen Konditionen einzeln abfragen und über das Script abarbeiten lassen muss *seufz*

Danke für die Hilfe,

Steffen
Gast Gast
 2008-11-21 10:39
#116469 #116469
Hallo zusammen...

Ich habe die Lösung für einen Work-Around in einem anderen Forum gefunden.
Für alle, die es interessiert, hier der Link zum Thread


MySQL Forum (englisch)

Trotzdem Danke an euch !!! :-)


Lg,

Madj2k
<< >> 4 Einträge, 1 Seite



View all threads created 2008-10-28 13:03.