0

質問があります:

SELECT b.user_id FROM users b where b.ratings_count !=      
    (SELECT COUNT(*) FROM
      ( SELECT wi.id FROM winelist_items wi
        JOIN wine_rated wr
        ON rate_user_id = b.user_id
        AND rate_vintage_id = wi.vintage_id
        AND wi.winelist_id = (SELECT id FROM winelist w
        WHERE w.user_id = b.user_id LIMIT 1 )
        AND wi.vintage_id !=0
      )t 
    ) limit 10;  

SQL によって計算されたものとは異なる rating_count を持つユーザーからすべての user_id を選択する必要があります。しかし、問題は、「エラー コード: 1054. 'on 句' の列 'b.user_id' が不明です」というエラー メッセージが表示されることです。私が間違っていることは何ですか?よろしくお願いいたします。

4

1 に答える 1

1

これを試してください

 SELECT b.user_id,
     (SELECT count(wi.id)
          FROM wine_rated wr
          JOIN winelist_items wi ON wr.rate_vintage_id = wi.vintage_id
          WHERE wr.rate_user_id = b.user_id  
          AND wi.winelist_id =
              (SELECT id
               FROM winelist w
               WHERE w.user_id = wi.rate_user_id LIMIT 1)
          AND wi.vintage_id !=0 ) AS CNT
FROM users b
GROUP BY b.user_id HAVING b.ratings_count !=CNT LIMIT 10;
于 2013-05-09T06:01:54.927 に答える