0

私のデータベースには、ユーザーが気に入ったアイテムをリストするテーブル (いいね) があります。
ユーザー プロファイルにアクセスするとき、共通の「いいね」がいくつあるかを判断する必要があります。
ユーザー間の相互の好みを表示するクエリを作成するための最良の方法は何ですか?

likes table

 id  |  user  |  item  | activated
-----------------------------------
 1   |  3     |  14    | 1          
 2   |  4     |  14    | 1


この例では14 を返す必要があります。

4

2 に答える 2

1

次のようなものであるとします。

select userViewer.item, items.itemName
from likes userViewer,
     likes userProfile,
     items
where userProfile.user = $profileUserId
  and userViewer.user = $userViewer
  and userProfile.item = userViewer.item
  and items.item = userViewer.item

$profileUserId - プロファイル ユーザーの userId および $userViewer - 現在のユーザーの userId

例として、「items」テーブルを使用した「join on」フォームに対する同じクエリ:

select userViewer.item, items.itemName
from likes userViewer inner join likes userProfile 
on userProfile.user = $profileUserId
  and userViewer.user = $userViewer
  and userProfile.item = userViewer.item
inner join items 
on userViewer.item = items.item
于 2013-11-10T14:23:52.440 に答える