0

これは、結合でエラーになる私のクエリです

        $query = 'SELECT 
                    a.ks_u_id, 
                    a.ks_keyword,
                    b.u_photo 
                FROM 
                '.T_KEYWORD_HISTORY.' a 
                WHERE a.ks_u_id in ( SELECT uf_target_id FROM '.T_USER_FOLLOW.' WHERE uf_user_id="'.$u_id.'" and uf_target_id <> "'.$u_id.'" )
                JOIN '.T_USER_ACCOUNT.' b ON b.u_id = a.ks_u_id 
                ORDER BY a.ks_time DESC 
                LIMIT 0 , 5 ';

このエラー メッセージが表示されます。

SQL 構文にエラーがあります。'JOIN T_USER_ACCOUNT b ON b.u_id = a.ks_u_id ORDER BY a.ks_time DESC '8行目付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

SELECT 
     a.ks_u_id, a.ks_keyword, b.u_photo 
FROM T_KEYWORD_HISTORY a 
WHERE a.ks_u_id in ( SELECT uf_target_id 
                     FROM T_USER_FOLLOW 
                     WHERE uf_user_id="jake" and uf_target_id <> "jake" ) 
JOIN T_USER_ACCOUNT b ON b.u_id = a.ks_u_id 
ORDER BY a.ks_time DESC 
LIMIT 0 , 5

JOIN コマンドのクエリを間違って書いたようです。

4

2 に答える 2

0

句は句のJOIN前に来WHEREます。クエリは次のようになります。

SELECT 
 a.ks_u_id, a.ks_keyword, b.u_photo 
FROM T_KEYWORD_HISTORY a 
JOIN T_USER_ACCOUNT b ON b.u_id = a.ks_u_id 
WHERE a.ks_u_id in ( SELECT uf_target_id 
                 FROM T_USER_FOLLOW 
                 WHERE uf_user_id="jake" and uf_target_id <> "jake" ) 
ORDER BY a.ks_time DESC 
LIMIT 0 , 5
于 2012-05-22T08:42:16.013 に答える
0

試す

SELECT 
     a.ks_u_id, a.ks_keyword, b.u_photo 
FROM T_KEYWORD_HISTORY a 
JOIN T_USER_ACCOUNT b ON b.u_id = a.ks_u_id 
WHERE a.ks_u_id in ( SELECT uf_target_id 
                     FROM T_USER_FOLLOW 
                     WHERE uf_user_id="jake" and uf_target_id <> "jake" ) 
ORDER BY a.ks_time DESC 
LIMIT 0 , 5
于 2012-05-22T08:36:49.417 に答える