我有2张桌子
网页
page_id post_id pid
3421 2345 1357
3421 4567 2468
3421 7891 1357
的USR
pid fname lname
1357 john bravo
2468 ray mexy
使用以下声明
$result = mysql_query("SELECT usrs.*,pages.* FROM usrs INNER JOIN pages ON
usrs.pid = pages.pid WHERE pages.page_id = '$pageid'"); // $pageid = 3421
它以数组的形式给出page_id = 3421的所有匹配。
这样的事情会回应结果
while($row = mysql_fetch_array($result))
echo $row['post_id'] . " " . $row['fname'] . " " . $row['lname'];
o/p is 2345 john bravo
4567 ray mexy
7891 john bravo
现在真正的问题是,在这种情况下,我还有另一张表可供使用
考虑表3:total_likes
post_id pid
2345 3214
2345 4123
1245 4567
2345 2367
用户可以选择喜欢它并且当用户点击时like button
hes pid
添加了post_id
,现在我想要特定{{1}的喜欢数量}这是特定post_id
我希望输出是这样的
post_id.
我不确定它是否可能,因为第三个表为post_id保存了更多值。它就像一个指向数组 2345 john bravo 45 likes
4567 ray mexy 32 likes
1357 john bravo 20 likes
的值的数组。
答案 0 :(得分:1)
您可以有一个额外的子查询,分别计算每个post_id
的记录数。
SELECT a.*,
b.*
c.likes, c.IsExist
FROM pages a
INNER JOIN usrs b
ON a.pid = b.pid
LEFT JOIN
(
SELECT post_id,
COUNT(*) likes,
IF(SUM(pid = 1357) > 0, 'yes', 'no') IsExist
FROM total_likes
GROUP BY post_id
) c ON b.post_id = c.post_id
WHERE a.page_id = 3421