3

Twitterの「フォローする人」のような提案機能を、ユーザー同士でフォローできるシステムに実装したいと考えています。これらのサブスクリプションを次のようなテーブルで追跡します。

CREATE TABLE `subscriptions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `follower_id` int(10) unsigned NOT NULL,
  `following_id` int(10) unsigned NOT NULL,
  `enabled` tinyint(1) NOT NULL DEFAULT '0',
)

現在のユーザーがまだフォローしていないユーザーのリストを取得しようとしています。

これまでのところ、次のようなクエリを使用してみました。

SELECT DISTINCT u.id, u.name, s.follwer_id, s.enabled
FROM users u
LEFT JOIN subscriptions s ON u.id = s.follwer_id AND s.enabled = 0
WHERE u.id != 2

このクエリは、多くの NULL と無関係な行を私に与えてしまいます。

前もって感謝します。

4

1 に答える 1