Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
joins ueberschreiben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
joins ueberschreiben


 
svr
09-10-2010, 14:35 
 
hallo liebe gemeinde,
habe grade probleme mit einer sql abfrage, einem join.
sieht so aus


SELECT
a.id,a.name,a.birthday, b.uid, b.tid FROM users a
INNER JOIN buddies b ON a.id='REGEXP 0x2e2a3f' AND a.id = b.uid
OR a.id = 1 where a.id=1 /**hier kommt der fehler **/


union select a.name,'a','a','a','a' from anothertable a

order by a.name ASC
limit 0,1





über denn sinn kann man natuerlich streiten, lerne nur gerade sql+joins.
der error ist jedenfalls, dass a.name nicht gefunden wurde im order teil. habe es doch aber wie oben das ganze selectet. wo ist der fehler?

danke!

 
wahsaga
09-10-2010, 14:48 
 
der error ist jedenfalls, dass a.name nicht gefunden wurde im order teil.
So drückt sich die Datenbank bestimmt nicht aus. Bitte zitiere Fehlermeldungen im Wortlaut.

 
svr
09-10-2010, 14:50 
 
#1054 - Unknown column 'a.name' in 'order clause'

obwohl ich doch das ganze richtig verwende, oder nicht?
die column "name" gibt es natuerlich in "anothertable"

 
wahsaga
09-10-2010, 14:58 
 
obwohl ich doch das ganze richtig verwende, oder nicht?
Vermutlich eher „oder nicht“.

Lies mal hier bzgl. ORDER BY bei UNIONs nach: MySQL :: MySQL 5.1 Reference Manual :: 12.2.8.3 UNION Syntax (http://dev.mysql.com/doc/refman/5.1/en/union.html)

 
svr
09-10-2010, 15:11 
 
dnake, aber das hilft mir nicht viel.

habe mal etwas gelesen, aber ich weiss nicht wo mein fehler liegt.

das geht ja
SELECT
a.id,a.name,a.birthday, b.uid, b.tid FROM users a
INNER JOIN buddies b ON a.id='REGEXP 0x2e2a3f' AND a.id = b.uid
OR a.id = 1 where a.id=1
order by a.name DESC
limit 0,1



wenn ich aber das ganze GENAU so wie oben ueberschreibe krieg ich den fehler

:(

 
h3ll
09-10-2010, 15:14 
 
Das Ergebnis von UNION kennt keine Tabellennamen mehr. Wie denn auch? Beispiel:
(
SELECT a.foo FROM tabelle_a AS a
)
UNION
(
SELECT b.foo FROM tabelle_b AS b
)
Heißt die Spalte jetzt a.foo oder b.foo? Soll das per Zufall entschieden werden? Nein, sie heißt einfach nur foo.

Davon abgesehen ist "name" ein Schlüsselwort in SQL und sollte nicht als Spaltenname verwendet werden.

 
wahsaga
09-10-2010, 15:16 
 
dnake, aber das hilft mir nicht viel.

habe mal etwas gelesen, aber ich weiss nicht wo mein fehler liegt.
Und das hältst du jetzt für irgendwie hilfreich in Bezug auf das Problem ...?

„Habe mal etwas gelesen“ - *seufz*, *omfg*

Direkt an der Stelle, wo ORDER BY im Dokument zum ersten Mal auftaucht ([strg]+[f]), wird die Problematik erklärt.

 
svr
09-10-2010, 15:22 
 
diese stelle habe ich auch gelesen, klar. mit einem table alias â la "AS" klappt es auch, moechte es aber gerne anders hinkriegen.

wenn jemand eine hilfe geben moechte, danke!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:31 Uhr.