2011-11-23 3 views
-1

2つのテーブルからのデータを含むループを作成しようとしていますが、このことは2つ以上の結果が表示されるというエラーを示しています。ここにスクリプトがあります。2つのテーブルからのsql呼び出し

$query_amoline = "SELECT * FROM `penny_players` WHERE `memid`=\"$curmemid\" AND id= (SELECT id FROM `penny` WHERE `active`='Y') ORDER BY `id` DESC"; 
$amoline = mysql_query($query_amoline) or die(mysql_error()); 
$row_amoline = mysql_fetch_assoc($amoline); 
$totalRows_amoline = mysql_num_rows($amoline); 

<? if($totalRows_amoline>0) 
{ ?> 
<?php do { ?> 
<?php 
$id=$row_amoline['id']; 
$pid=$row_amoline['pennyid']; 

if($totalRows_amoline>0) 
{ ?> 
} 

答えて

1

SELECT id FROM `penny` WHERE `active`='Y' 

かのリターンより1つのID、その後、クエリは失敗します。

変更するには:

"SELECT * FROM `penny_players` WHERE `memid`=\"$curmemid\" AND id IN (SELECT id FROM `penny` WHERE `active`='Y') ORDER BY `id` DESC"; 
+0

君たちがおかしくているgeniusses –

1

pennyに複数の行がYからactiveセットを持っていますので、あなたはおそらく、... AND id IN (...を意味しました。

1
"SELECT pp.* 
    FROM penny_players pp 
    WHERE pp.memid=\"$curmemid\" 
     AND EXISTS(SELECT NULL 
         FROM penny p 
         WHERE p.id = pp.id 
          AND p.active = 'Y') 
    ORDER BY pp.id DESC"