• 締切済み

レコード数を重複を省いて取得するには

テーブルAccessにあるフィールドuser_idの値が$userであるフィールド数を取得したいのですが、 同テーブルのフィールド ip もしくは uid の値が重複しているものを省いた数を取得したいです。 ipとuidの値が他のフィールドに存在していないuser_idだけカウントしたいです。 このようなカウントをすることは可能でしょうか。 クエリ文をご教示頂けると幸いです。 よろしくお願い致します。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

元のtable にどんなデータがあって、どういう数値がでればよいのか 前回答者さんのSQL結果のどの辺が目的と違うのか、詳しく補足してもらわないと。 質問文自体も、フィールドと行を勘違いしてるような文章なので、意味がとれないし。 もしかして「重複がないもの」じゃなくて、重複してるものは1件で数えたいの? ところで、MySQL の versionは?version古くてサブクエリでエラーでしたってわけじゃないよね。

回答No.1

SELECT COUNT(*) FROM ACCESS T WHERE 1=(SELECT COUNT(*) FROM ACCESS T2 WHERE T2.IP=T.IP) AND 1=(SELECT COUNT(*) FROM ACCESS T2 WHERE T2.UID=T.UID) AND USER_ID='$user' でどうでしょうか。

people900
質問者

お礼

回答ありがとうございます。 試してみましたが駄目でした… また何かわかりましたらお願い致します。

関連するQ&A