我正在尝试连接两个表,以便计算其中一个表中的行数据。
pin.id
和repin.from_pin_id
是两个不同表格中的初选。
我正在尝试计算repin.from_pin_id
中某个变量的行数,其中board_id
等于某个变量($ boardDetails-> id)。
board_id
位于pins
,这就是我尝试将repin
加入该表的原因。这是我可以提取特定董事会ID的唯一方法。
<?php
$result = mysql_query("SELECT repin.from_pin_id, pins.id COUNT(from_pin_id) FROM repin WHERE from_pin_id = pins.id LEFT JOIN pins ON repin.from_pin_id = pins.id");
$countit = mysql_result($result, 0);
?>
没有运气。 我希望这很清楚,很难解释。
编辑:
这是解决方案,我正在努力,因为我错误地使用了错误的字段。字段from_pin_id
应为owner_user_id
。
我接受了一些建议查询并让它发挥作用。谢谢你们。
<?php
$result = mysql_query("SELECT COUNT(owner_user_id)
FROM repin
INNER JOIN pins ON pins.id = repin.from_pin_id
WHERE owner_user_id='$boardDetails->user_id'
AND pins.board_id='$boardDetails->id'");
$countit = mysql_result($result, 0);
?>
答案 0 :(得分:2)
试试这个SQL而不是我不熟悉PHP所以你可能需要调整字符串处理
<?php
$result = mysql_query("
SELECT
repin.from_pin_id,
pins.id,
COUNT(from_pin_id)
FROM
repin
LEFT JOIN pins ON
repin.from_pin_id = pins.id
AND " + $boardDetails->id +" = pin.board_id
GROUP BY
repin.from_pin_id,
pins.id
");
$countit = mysql_result($result, 0);
?>
答案 1 :(得分:1)
如果我理解你想要做什么,看起来你想做这样的事情:
SELECT repin.from_pin_id, pins.id, COUNT(from_pin_id)
FROM repin
LEFT JOIN pins ON repin.from_pin_id = pins.id
GROUP BY repin.from_pin_id, pins.id
您不需要WHERE
条款 - 这是在JOIN
中处理的。您需要添加GROUP BY
子句。
答案 2 :(得分:1)
您可以尝试使用以下代码吗?错过comma
之间的pin.id and count
<?php
$result = mysql_query("SELECT repin.from_pin_id, pins.id,COUNT(from_pin_id) FROM repin INNER JOIN pins ON pins.id = repin.from_pin_id WHERE pins.board_id='".$boardDetails->id."'");
$countit = mysql_result($result);
?>