1

t_msg

msg_id | message | user_id

サンプルデータ:

01 | hai how are you | 01
02 | will you marry me ? | 02

t_users
サンプルデータ:

uid | username | full_name
01 | greg | Greg Fish
02 | drown | Leon Drown

t_friendship
サンプルデータ:

uid | uid_fk | status
01 | 02 | friend
02 | 01 | friend

私は3つのテーブル関係を持っています。今、私はユーザーショーからのメッセージと、ステータスが友達の場合は他のユーザーからのメッセージが欲しいです。
uid 1 がログインした場合の例:
uid 1
hai お元気ですか

uid 2 (このショーは、uid 1 と uid 2 が友達であるためです。
結婚してくれませんか ?

これは私が作成したクエリです:

$query = mysql_query("
        SELECT 
        M.msg_id, 
        M.uid_fk, 
        M.message, 
        M.created,
        U.full_name, 
        U.profile_pic, 
        U.username,
        U.uid, 
        F.status, 
        F.uid 

        FROM
        t_haps_wall M,
        t_users U, 
        t_join_user F 

        WHERE
        M.uid_fk=U.uid
4

1 に答える 1

1

次のように、スレッド テーブルJOINを使用して 3 つのテーブルを作成する必要があります。ON f.uid_fk = u.uid

SELECT 
  M.msg_id, 
  M.uid_fk, 
  M.message, 
  M.created,
  U.full_name, 
  U.profile_pic, 
  U.username,
  U.uid, 
  F.status, 
  F.uid 
FROM t_haps_wall M
INNER JOIN t_users U ON m.user_id = u.uid
INNER JOIN t_join_user F ON f.uid_fk = u.uid

SQL フィドルのデモ

于 2012-11-21T11:19:45.913 に答える