我需要一些帮助,
table "friends"
+------+-------------+-----------+
id | friend_id | user_id |
+------+-------------+-----------+
1 | 1222 | 99999 |
+------+-------------+-----------+
2 | 48989 | 1492 |
+------+-------------+-----------+
table "users"
+------+-------------+---------------+
id | user_name | user_image |
+------+-------------+---------------+
99999 | Mark | img/abc.jpg |
+------+-------------+---------------+
1222 | Tom | img/xyz.jpg |
+------+-------------+---------------+
etc. | etc. | etc.. |
+------+-------------+---------------+
我想要SELECT表朋友并制作WHERE语句:
etc:... WHERE user_id = $ _ SESSION [user_id] ... 并将显示来自表用户的数据
好吧,让我们说: 我当前的id是99999所以在表朋友中只匹配1222,所以这将显示来自表用户的id 1222(Tom)的所有数据(图像等)。所以我的问题是我如何编写这段代码来生成用户数据?
*我尝试使用UNION和LEFT JOIN ..但没有运气..还有新手..
答案 0 :(得分:4)
$user_id = intval($_SESSION['user_id']);
$friends_of_user = mysql_query('
SELECT
f.*, u.*
FROM
friends f
LEFT JOIN
users u
ON
u.id = f.friend_id
WHERE
f.user_id = '.$user_id);
要排除用户表中没有个人资料的所有用户,只需将LEFT JOIN
更改为JOIN
答案 1 :(得分:2)
我使用以下代码:
$user_id = mysql_real_escape_string($_SESSION['user_id']);
$sql = "SELECT f.*
FROM users u
INNER JOIN friends f ON (u.user_id = f.friend_id)
WHERE u.user_id = '$user_id' ";