0

テーブルに自己結合を使用しましたが、テーブルの行を取得できません

$SQL1 = "SELECT e1.userid, e2.userid
FROM userfield AS e1, userfield AS e2
WHERE e1.field5 = e2.field5 and e1.field5!=' ' and e2.field5!=' ' and e1.userid!=e2.userid";

$result2 = mysql_query($SQL1);

while ($db_field2 = mysql_fetch_assoc($result2)) {
    print $dbfield2[userid];  
}

このコードを実行すると、空白のページが表示されます。msqlデータベースでこのクエリを実行すると、2つのユーザーIDが返されます

どんな助けでも大歓迎です

4

2 に答える 2

0
$SQL1 = "SELECT e1.userid, e2.userid
    FROM userfield AS e1, userfield AS e2
    WHERE e1.field5 = e2.field5 and e1.field5!=' ' and e1.userid!=e2.userid";

$result2 = mysql_query($SQL1);

while ($db_row = mysql_fetch_assoc($result2)) {
    print $db_row['e1.userid'];  
}

PS はandと等しい必要があるためand e2.field5!=' '、 inWHERE句は必要ありません。e2.field5e1.field5e1.field5!=' '

于 2012-12-13T19:47:35.803 に答える
0

次のようなエイリアスを指定する必要があります。

$SQL1 = "SELECT e1.userid AS userid1, e2.userid AS userid2
         FROM userfield AS e1, userfield AS e2
         WHERE e1.field5 = e2.field5 and e1.field5!=' ' and e1.userid!=e2.userid";

$result2 = mysql_query($SQL1);

while ($db_field2 = mysql_fetch_assoc($result2)) {
    print $dbfield2['userid1'];  
}

PDO または mysqli への切り替えを検討してください。すべての mysql_* 関数は公式に非推奨としてマークされています。

于 2012-12-14T11:24:50.843 に答える