2010-07-09 276 views
0

我似乎無法讓這個查詢工作,有人可以幫我修復它。MySQL查詢問題

這裏是MySQL代碼。

SELECT users.(user_id, pic, first_name, last_name, username), 
      comments.(id, user_id, date_created) 
FROM users 
INNER JOIN comments ON users.user_id = comments.user_id 
WHERE comments.user_id = '$user_id' 
GROUP BY comments.date_created 

我得到以下錯誤:

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 '(user_id, pic, first_name, last_name, username), comments.(id, user_id, date_created)' at line 1

+0

你有什麼問題? – 2010-07-09 05:19:38

+0

稍有不同,您應該考慮使用[prepared statements](http://php.net/manual/en/mysqli.prepare.php)代替動態SQL命令。這是一個更安全的選擇,並且通常比所有不必要的惡意轉義都要簡單。有很多教程。下面是一些讓你開始使用的內容:[在PHP和MySQLi中準備的語句](http://mattbango.com/notebook/web-development/prepared-statements-in-php-and-mysqli/)和[開發MySQL數據庫應用程序用PHP](http://developers.sun.com/databases/articles/mysql_php1.html)。 – Mike 2010-07-09 07:10:07

回答

1
users.(user_id, pic, first_name, last_name, username) 

應該

users.user_id,users.pic, users.first_name, users.last_name, users.username 
4

嘗試:

SELECT u.user_id, u.pic, u.first_name, u.last_name, u.username, c.id, c.user_id AS comment_user_id, c.date_created 
    FROM users u 
    INNER JOIN comments c ON u.user_id = c.user_id 
    WHERE c.user_id = '$user_id' 
    GROUP BY c.date_created 
0

你r查詢應該已經發布在兩個答案中,但是如果您在JOIN時遇到問題,您可以簡單地這樣做。

SELECT u.user_id, u.pic, u.first_name, u.last_name, u.username, 
     c.id, c.user_id, c.date_created 
FROM users u, comments c 
WHERE u.user_id = c.user_id AND c.user_id = '$user_id' 
GROUP BY c.date_created; 

這應該清理一下。對不起,重複大部分查詢,但我只是討厭JOINs;)