0

count と group を使用する必要があり、少し混乱しています。

私は2つのテーブルを持っています:

  • users

    id_user | ファーストネーム | 姓 | ジャンル | logo_src

  • user_stalking

    ユーザー ID | user_stalking_id

現時点では、私のクエリは次のようになります。

SELECT   us.user_id, us.user_stalking_id, us.notification_viewed, u.id_user,
         u.firstname, u.lastname, u.logo_src, u.genre, us.id, us.date
FROM     users u, user_stalking us
WHERE    us.user_id = ".$_SESSION['user']['id_user']."
     AND us.notification_viewed = 0
     AND us.user_stalking_id = u.id_user
ORDER BY us.date DESC

そしてそれは戻ります:

ジョン | ジョン | ジョンソン | image1.png | 男

user_stalking.user_idフィールドとフィールドに同じ ID を含むすべての行の数を取得したいと考えていuser_stalking.user_stalking_idます。

4

4 に答える 4

0

select count(*) AS count from users u, users_stalking us where u.user_id = us.user_stalking_id ??

(誤字脱字すいません、携帯からです)

于 2012-10-02T13:21:18.267 に答える
0
SELECT   COUNT(us.user_id)
FROM     users AS u
JOIN     user_stalking AS us ON (us.user_stalking_id = u.id_user)
WHERE    us.user_id = ".(int)$_SESSION['user']['id_user']."
          AND us.notification_viewed = 0
GROUP BY us.user_id
ORDER BY us.date DESC
于 2012-10-02T13:22:56.640 に答える
0

まず、このステートメントの前のどこかで $_SEESION['user']['id_user'] 値をチェック/サナタイズしていることを願っています。

あなたの質問に答えるために、クエリをそのように変更することで、これらの両方の値を取得できます (最も効率的なクエリではない可能性があります)。

SELECT  us.user_id, us.user_stalking_id, us.notification_viewed, u.id_user, u.firstname, u.lastname, u.logo_src, u.genre, us.id, us.date, 
    (SELECT COUNT(s.user_id) FROM user_stalking s WHERE s.user_id = u.user_id) AS stalking_count, 
    (SELECT COUNT(s2.user_id) FROM user_stalking s2 WHERE s2.user_stalking_id = u.user_id) AS being_stalked_count 
FROM    users u, user_stalking us 
WHERE   us.user_id = ".$_SESSION['user']['id_user']." 
    AND us.notification_viewed = 0 
    AND us.user_stalking_id = u.id_user ORDER BY us.date DESC
于 2012-10-02T13:16:57.023 に答える
0

「今、user_stalking.user_id フィールドと user_stalking.user_stalking_id フィールドに同じ ID を含むすべての行の数を受け取りたいです。」

あなたが探しているのは、等結合/内部結合クエリだと思います。

    select count(*) from users u, user_stalking us where us.user_id = ".$_SESSION['user']['id_user']."
 AND u.id_user=us.user_stalking_id
于 2012-10-02T13:27:31.570 に答える