0

我正在尝试连接两个表,以便计算其中一个表中一行的数据。

pin.id并且repin.from_pin_id是两个不同表中的初选。

我正在尝试计算某个变量在等于某个变量($boardDetails->id) repin.from_pin_id时出现的行数。位于,这就是我尝试加入该表的原因。这是我可以提取特定板 id 的唯一方法。board_idboard_idpinsrepin

<?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);
?>
4

3 回答 3

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);
?>
于 2013-05-24T22:43:25.557 回答
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);
?>
于 2013-05-24T22:45:33.427 回答
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子句。

于 2013-05-24T22:43:10.423 回答