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 と無関係な行を私に与えてしまいます。
前もって感謝します。