我有3个表:消息,用户和朋友。SQL加入声明收集用户的朋友和用户的消息
Messages: msg_id, uid_fk, message, alert, created, uploads, owner
Users: uid, first_name, last_name
Friends: friend_one, friend_one
当用户成为朋友与其他用户,我记录自己的UID以下方式:friend_one:172 friend_two:58 | friend_one:58 friend_two:172 我的下面的代码完美地工作,并通过选择所有用户的消息更新。我的问题是,我需要选择不仅用户自己的所有消息,而且还要选择所有他或她的朋友消息。
如上所述,以下内容仅选择用户的状态更新,我一直在努力工作数小时以选择不仅用户的状态更新,而且还选择他或她的朋友。
$query = $db->prepare("SELECT M.msg_id, M.uid_fk, M.message, M.alert,
M.created, M.uploads , M.owner , U.uid , U.first_name , U.last_name FROM
messages M, users U WHERE M.uid_fk=U.uid and M.uid_fk= :uid_fk limit 10");
$query->execute(array(':uid_fk' => $uid));
($ uid是登录用户的会话ID)
而且我对万一选择的朋友代码:
$friends_sql = $db->prepare("SELECT a.first_name, a.uid, a.last_name FROM users
a, friends b WHERE a.uid = b.friend_two AND b.friend_one = :friend_one ORDER BY
b.friend_id DESC LIMIT 8");
$friends_sql->execute(array(':friend_one' => $uid));
就这么你知道,你可以把回车放在你的'$ db-> prepare'调用的引号内。因此,按照Michael Fredrickson的回答,您可以用可读的方式格式化SQL,这样可以更轻松地关注您和其他看到您代码的人。 – halfer 2012-07-25 17:21:53
噢,那真的会有很大的帮助。谢谢你的提示。 – user1011713 2012-07-25 17:26:11