0

こんにちは、私はチュートリアルに従っており、メッセージが表示されるまで苦労しています。

Unknown column 'conversations_members' in 'where clause'

検索して調べましたが、状況を解決する方法がわかりません。

ここに私が持っている3つのテーブルがあります:

会話

conversation_id | conversation_subject

会話_メンバー

conversation_id | user_id | conversation_last_view | conversation_deleted

会話_メッセージ

message_id | conversation_id | user_id | message_date | message_text

これが私にとって問題の原因となっているクエリです。

$sql = "SELECT 
        `conversations`.`conversation_id`,
        `conversations`.`conversation_subject`,
        MAX(`conversations_messages`.`message_date`) AS `conversation_last_reply`
    FROM `conversations`
    LEFT JOIN `conversations_messages` ON `conversations`.`conversation_id` = `conversations_messages`.`conversation_id`
    INNER JOIN `conversations_members` ON `conversations`.`conversation_id` = `conversations_members`.`conversation_id`
    WHERE `conversations_members`= `{$_SESSION['user_id']}`
    AND `conversations_members`.`conversation_deleted` = 0
    GROUP BY `conversations`.`conversation_id`
    ORDER BY `conversation_last_reply` DESC";

$result = mysql_query($sql);

$conversations = array();

while (($row = mysql_fetch_assoc($result)) !== false) {
    $conversations[] = array(
        'id'         => $row['conversation_id'],
        'subject'    => $row['conversation_subject'],
        'last_reply' => $row['conversation_last_reply']
    );
}

return $conversations;

関数をdie(mysql_error());実行する前にエラーをピックアップする必要があります。完全な関数コードが必要な場合は、提供できます。

誰かが私が間違っている場所とその理由を説明してくれますか?

乾杯

..ps あなたは何を提案しますか?

4

1 に答える 1

2

エラーは次の行にあります。

WHERE `conversations_members`= `{$_SESSION['user_id']}`

基本的に、エラーはそれが何を意味するかを正確に示しています-WHERE句の列に条件が必要であり、という名前の列はありませんconversations_members。したがって、エラー。で判断すると、おそらくテーブルuser_idの列が必要になるでしょう。conversations_members$_SESSION['user_id']

WHERE `conversations_members`.`user_id`= `{$_SESSION['user_id']}`
于 2013-04-30T01:13:27.340 に答える