0

2 つのテーブルを結合して、1 つの行のデータをカウントしようとしています。

pin.idrepin.from_pin_idは、2 つの異なるテーブルのプライマリです。

特定の変数 ($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

あなたがやろうとしていることを私が理解しているなら、あなたは次のようなことをしたいと思っているようです:

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 に答える
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 に答える