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三个表,如下所示: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 回答