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)
Query, Join, unknown column [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Query, Join, unknown column


 
bastian
23-02-2010, 16:53 
 
hallo forum,
bekomme bei folgendem query die fehlermeldung:"unknowm colum usr_id in on clause''.


SELECT SQL_CALC_FOUND_ROWS DISTINCT
a.*,
b.*,
c.*,
IF(c.usr_id,1,0) as online
FROM
user_data as a ,
user_search as b
LEFT OUTER JOIN
user_sessions as c
ON
a.usr_id=c.usr_id
WHERE
a.usr_login LIKE '%xyz%'
AND
b.opt_id='8'
ORDER BY
online DESC, a.usr_img ASC, a.usr_login ASC
die spalte "usr_id" ist vorhanden. kann mir bitte wer nen "schubs" geben.
danke,
b.

 
AmicaNoctis
23-02-2010, 16:58 
 
Hallo,

den Alias a gibt es nach außen nicht, weil der Theta-Style-Join (,) stärker bindet als das as, also ist der Cross Join von user_data und user_search bereits gejoint, wenn das Alias b dafür definiert wird.

Wieder ein Grund, warum man keine Theta-Style-Joins verwenden sollte.

Edit: weil ich grad selbst nicht verstehe, was ich da geschrieben habe, hier mal das, was passiert mit Klammern erläutert:

...
FROM
(
(user_data as a) ,
user_search
) as b
LEFT OUTER JOIN
user_sessions as c
...

Gruß,

Amica

 
bastian
23-02-2010, 17:00 
 
:danke:

teste ich sofort aus und bin dankbar für deinen schub(s).

öhm, mal ohne nachzudenken geragt:
warum dann nicht das Alias A durch ein t1 ersetzen?

oder gehts da um was anders?
b.

 
AmicaNoctis
23-02-2010, 17:09 
 
Nimm "INNER JOIN" statt ","

 
bastian
23-02-2010, 17:12 
 
nehme ich, wenn du mir (bitte) sagen würdest WIE bzw anstelle von WAS.
"," <- weiss ich gerade nichts mit anzufangen.

 
AmicaNoctis
23-02-2010, 17:15 
 
Na der Komma-Operator hier: "user_data as a, user_search as b"

 
bastian
23-02-2010, 17:25 
 
bist'n schatz, danke! :jo:


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:43 Uhr.