おすすめユーザー機能
created: 2012-01-23 17:01 | modified: 2012-01-25 16:46 | reply: 2
[4414] おすすめユーザー機能
user: ゴーマン | created: 2012-01-23 17:01
以前も質問させてもらった者です。
今題名にもあるように、「おすすめユーザー」機能を作成してますが、
つまずいしてしまってます。
まず、お気入り「user_bookmark」テーブルにお気に入りユーザーを登録します。ユーザー情報は[user」テーブルです。
登録していないユーザーをランダムに表示させたいのですが、同じユーザーが表示されたり、登録しているユーザーも表示されます。
色々と調べたのですが、参考になるような情報も得れない状況です。
SQLは↓です。
select user.* FROM user_bookmark,user WHERE user_bookmark.user_id = "ユーザーID" AND user_bookmark.t_user_id >= user.id and user.id != "ユーザーID" order by RAND() desc limit 15
もしよければご伝授お願いします!!
今題名にもあるように、「おすすめユーザー」機能を作成してますが、
つまずいしてしまってます。
まず、お気入り「user_bookmark」テーブルにお気に入りユーザーを登録します。ユーザー情報は[user」テーブルです。
登録していないユーザーをランダムに表示させたいのですが、同じユーザーが表示されたり、登録しているユーザーも表示されます。
色々と調べたのですが、参考になるような情報も得れない状況です。
SQLは↓です。
select user.* FROM user_bookmark,user WHERE user_bookmark.user_id = "ユーザーID" AND user_bookmark.t_user_id >= user.id and user.id != "ユーザーID" order by RAND() desc limit 15
もしよければご伝授お願いします!!
[4415] サブクエリはいかが
user: ゆうじ | created: 2012-01-23 23:52
こんばんわス。
userテーブルに対して次の用件を盛り込む必要があるようですが
1.「ユーザー自身」と「登録済のお気に入りユーザー」を除く。
2.残るレコードから、ランダムに、15件の、ユーザーを選ぶ。
この↓SQLでは満たしてない気がします。
テーブルひとつで完結しないので
サブクエリ(副問合せ)を使ってみてください。
Mysql 5.1以降ではこうなるだろうというのを挙げてみました。
サブクエリを使ったことがなくて間違ってたらゴメンなさい。
userテーブルに対して次の用件を盛り込む必要があるようですが
1.「ユーザー自身」と「登録済のお気に入りユーザー」を除く。
2.残るレコードから、ランダムに、15件の、ユーザーを選ぶ。
この↓SQLでは満たしてない気がします。
SELECT user.*
FROM
user_bookmark,
user
WHERE
user_bookmark.user_id = "ユーザーID" AND
user_bookmark.t_user_id >= user.id AND
user.id != "ユーザーID"
ORDER BY
RAND() desc
LIMIT
15
テーブルひとつで完結しないので
サブクエリ(副問合せ)を使ってみてください。
Mysql 5.1以降ではこうなるだろうというのを挙げてみました。
サブクエリを使ったことがなくて間違ってたらゴメンなさい。
SELECT *
FROM
user
WHERE
id <> 'ユーザーID' AND
id <> (SELECT user_id FROM user_bookmark WHERE user_id = 'ユーザーID')
ORDER BY
RAND()
LIMIT
15
[4416] 返信ありがとうございます
user: ゴーマン | created: 2012-01-25 16:46
すいません、今使ってるMysqlは5.0.77なので、エラーになってしまいます・・・。