php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.10.2008, 14:35  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard SQL Abfrage funktioniert nicht

Hallo,

ich habe mal wieder ein typisches "Script läuft auf Server A, aber auf Server B nicht" Problem.

Erstmal auf beiden Servern läuft PHP 5 und es sollte jeweils eine mySQL 4 Datenbank sein. Auf Server A läuft die folgende Abfrage ohne Probleme. Die Datenbank auf dem anderen Server wurde 1:1 gespiegelt, also an fehlenden Daten kann es nicht liegen. Die Abfrage sieht wie folgt aus:

Code:
SELECT news.*, user.name as user_name,
(SELECT COUNT(id) FROM prefix_news_comments WHERE news_id = news.id) AS comments
			
FROM prefix_news as news
LEFT JOIN prefix_user as user
ON news.user_id = user.id
Als SQL Error kommt folgendes, was mir allerdings nichts bringt:

Zitat:
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(id) FROM prefix_news_comments WHERE news_id = news.
Ich hoffe ihr könnt mir helfen.

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.10.2008, 06:36  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

warum joinst Du nicht auch die dritte tabelle, dann gehts sicher
HPR1974 ist offline   Mit Zitat antworten
Alt 27.10.2008, 09:36  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von HPR1974 Beitrag anzeigen
warum joinst Du nicht auch die dritte tabelle, dann gehts sicher
Dann gehts sicher nicht, weil er dann mit GROUP BY arbeiten müsste, und dmit alle Attribute auser «prefix_news_comments.id» in der GROUP BY-Klausel stehen müssten.
Ich sehe jetzt auf den ersten Blick keinen Fehler. Möglicherweise benötigt MySQL auch in der inneren Abfrage einen Alias. In der Dokumentation habe ich dazu allerdings nichts gesehen.
Code:
SELECT 
    news.attr_1,
    news.attr_2,
    ..., 
    user.name AS user_name,
    (
        SELECT 
            COUNT(com.id) 
        FROM 
            prefix_news_comments com 
        WHERE 
            com.news_id = news.id
    ) AS comments        
FROM 
    prefix_news AS news
LEFT JOIN 
    prefix_user AS user ON news.user_id = user.id
__________________
Gruss
L

Geändert von lazydog (27.10.2008 um 12:43 Uhr).
lazydog ist offline   Mit Zitat antworten
Alt 27.10.2008, 12:26  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

naqtürlich muss man bei aggregatsfunktionen auch richtig gruppieren. Ich sehe nicht das problem er fragt 3 Tabellen ab, die miteinander verknüpft sind. Btw. kann wenn man nicht ordentlich gruppiert das Ergebnis unerwartet ausfallen.
HPR1974 ist offline   Mit Zitat antworten
Alt 28.10.2008, 17:27  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Also mit Alias in den Subselects funktioniert es leider auch nicht. Kann es sein, dass Subselects irgendwie servermäßig deaktiviert sind bzw. ist sowas überhaupt möglich?

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 28.10.2008, 18:12  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Ich könnt mal wieder ausrasten... Ich hab gerade mal die DB gedroppt und testweise ne mySQL 5er DB erstellt (statt ner 4er) und auf der funktioniert alles ohne Probleme. Scheinbar nutzt 1und1 eine veraltete 4er Version von mySQL, die noch keine Subselects unterstützt. Nur zur Info, meine private Entwicklungsumgebung nutzt auch noch mySQL 4, allerdings in der aktuellsten Version und da gibt es schon Subselects.

Danke für eure Hilfe!

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 30.10.2008, 09:39  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von GSJLink Beitrag anzeigen
meine private Entwicklungsumgebung nutzt auch noch mySQL 4, allerdings in der aktuellsten Version und da gibt es schon Subselects.
Subselects gibts seit MySQL 4.1
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Abfrage funktioniert in phpmyadmin, aber nicht mit mysql_query() LichtAnd Datenbanken 0 15.10.2008 20:05
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
[Erledigt] SQL Abfrage funzt nicht Datenbanken 2 04.02.2005 11:09
Abfrage funktioniert unter MySQL aber nicht unter MS SQL Schiedsrichter Datenbanken 2 27.01.2005 15:43
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage funktioniert nicht Datenbanken 9 16.08.2004 17:00
Abfrage funktioniert zwar, aber nicht korrekt Datenbanken 2 16.08.2004 09:10
Abfrage gestalten Datenbanken 3 13.08.2004 13:33
Newbie-Frage: Abfrage funktioniert nicht Datenbanken 3 13.08.2004 12:28
2 Tabellen 1 Abfrage nilsfeld Datenbanken 6 11.08.2004 11:18
komplizierte mySQL Abfrage Datenbanken 6 25.06.2004 15:34
[Erledigt] Fehlerhafte Abfrage ? Datenbanken 15 24.06.2004 17:10
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql 2008 abfrage welcher user arbeitet, select funktioniert nicht sql, 1und1 sql abfrage mit where geht nicht, sql abfrage geht, php sql abfrage where funktioniert nicht, sql abfrage mit php > als gehjt nicht, sql mit and funktioniert nicht, php sichere sql abfragen, 1und1 sql anfrage läpft nicht, sql abfrage zeigt nichts an, sql check funktioniert nicht, sql abfrage mal geht mal nicht, php sql abfrage funktioniert nicht, sql abfrage funktioniert in php nicht, wieso in in sql funktioniert nicht wie =

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum