在php中从自联接检索行

在php中从自联接检索行,php,sql,Php,Sql,我对表使用了自连接,但无法检索表行 $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

我对表使用了自连接,但无法检索表行

$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数据库中触发这个查询时,它返回了两个用户ID

任何帮助都将不胜感激

$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'];  
}

另外,您不需要
和e2.field5!=''e2.field5
必须等于
e1.field5
e1.field5!='',所以
WHERE
子句中的code>

您必须给他们这样的别名:

$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 ODER MySQL。所有mysql_*函数都被正式标记为已弃用。

1。避免在php脚本中使用mysql,因为不再有mantained,请改用PDO或mysqli。2.提供有关预期输出的更多信息在
FROM userfield作为e1,userfield作为e2
子句中使用的默认联接是什么?这会对表的2个主键进行连接吗?i、 例如,
从userfield作为e1加入userfield作为e1上的e2。userid=e2。userid
问题已解决,而不是fetch\u assoc我使用mysql\u fetch\u数组,它可以工作,用于回复。祝你好运不要使用
[userid]
,使用
['userid']
,这些字符串需要退出(当我们在开发时,启用完整的错误报告和显示错误,它会告诉您这一点)。