مرحباً أيها الناس الرائعون! ![]()
هل من الممكن، باستخدام مستكشف البيانات، عرض جدول يوضح من قام بتكتم المستخدمين وتجاهلهم، ومن قام بذلك؟
إذا كان بإمكان أي شخص تقديم المساعدة، فسأكون ممتناً جداً ![]()
شكراً لكم
مرحباً أيها الناس الرائعون! ![]()
هل من الممكن، باستخدام مستكشف البيانات، عرض جدول يوضح من قام بتكتم المستخدمين وتجاهلهم، ومن قام بذلك؟
إذا كان بإمكان أي شخص تقديم المساعدة، فسأكون ممتناً جداً ![]()
شكراً لكم
لم أرَ هذه الميزة من قبل، وأتساءل عما إذا سيتم إضافتها، فقد تعرض ممارسات الخصوصية الآمنة للخطر.
جرّب:
SELECT id AS user_id, muted_users, ignored_users
FROM (
SELECT u.id,
ARRAY_AGG(m.muted_user_id)
FILTER (WHERE m.muted_user_id IS NOT NULL) AS muted_users,
ARRAY_AGG(i.ignored_user_id)
FILTER (WHERE i.ignored_user_id IS NOT NULL) AS ignored_users
FROM users u
LEFT JOIN ignored_users i ON u.id = i.user_id
LEFT JOIN muted_users m ON u.id = m.user_id
GROUP BY u.id
) data
WHERE (muted_users IS NOT NULL OR ignored_users IS NOT NULL)
أو، إذا كنت تريد قائمة بأسماء المستخدمين بدلاً من المعرفات، جرّب:
SELECT id AS user_id, muted_users, ignored_users FROM (
SELECT u.id,
ARRAY_AGG(muteds.username)
FILTER (WHERE muteds.username IS NOT NULL) AS muted_users,
ARRAY_AGG(ignores.username)
FILTER (WHERE ignores.username IS NOT NULL) AS ignored_users
FROM users u
LEFT JOIN (
SELECT i.user_id AS id, u1.username
FROM users u1
INNER JOIN ignored_users i ON u1.id = i.ignored_user_id) ignores
ON u.id = ignores.id
LEFT JOIN (
SELECT m.user_id AS id, u1.username
FROM users u1
INNER JOIN muted_users m ON u1.id = m.muted_user_id) muteds
ON u.id = muteds.id
GROUP BY u.id
) data
WHERE (muted_users IS NOT NULL OR ignored_users IS NOT NULL)
شكرًا لك يا روبرت على إنشاء الاستعلام! يعمل اسم المستخدم بشكل أفضل بالنسبة لنا.
أتمنى لك يومًا سعيدًا