0

SQL sooの初心者です。cometchatの友人テーブルのこの「大きな」選択に大きな問題があります。誰か書いてくれませんか。

Cometchat は friends テーブル用に構成されています。

friends

     toid     fromid
id    2          1
id    1          2

およびそれを選択するSQL:

$sql = ("select DISTINCT ".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_USERID." userid,         ".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_NAME." username, 
".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_LASTACTIVITY." lastactivity, 
".DB_AVATARFIELD." avatar, ".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_USERID." link, 
cometchat_status.message, cometchat_status.status 
from ".TABLE_PREFIX."friends join ".TABLE_PREFIX.DB_USERTABLE." on      ".TABLE_PREFIX."friends.toid = ".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_USERID." left     join          cometchat_status on ".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_USERID." =     cometchat_status.userid ".DB_AVATARTABLE."
 where ".TABLE_PREFIX."friends.fromid = '".mysql_real_escape_string($userid)."' order by username asc");
return &sql;

私のRailsアプリには友情テーブルがあります:

friendships
     user_id     friend_id
id      1            2
id      2            1

順序を変更しただけでは機能しません。これは今の私には難しすぎると思います。Railsでは、どの友情が自分のプロフィールのuser_idを持っているかを確認し、friend_isを友達として表示します。

これは、フレンド テーブルを使用した標準の cometchat 設定用に生成された SQL です。

select DISTINCT users.id userid,
    users.name username, 
    users.current_sign_in_at lastactivity, 
    users.id  avatar,
    users.id link, 
    cometchat_status.message,
    cometchat_status.status 
  from friends 
  join users on friends.toid = users.id 
  left join cometchat_status on users.id = cometchat_status.userid
  where friends.fromid = '10'
  order by username asc

私はテーブルを友達から私の悪魔とtoid(friend_idで)とformid(user_idで)に、そしてその逆に変更しようとしましたが、それでもうまくいかず、友達リストを取得できません。

4

0 に答える 0