SQL中连接两个表的问题

SQL中连接两个表的问题,sql,Sql,我有两张桌子。用户id、用户名、密码、年龄和注释注释id、注释、用户idforeign密钥 我正在尝试使用评论中提供的用户id从用户处获取用户名 我的查询如下所示: $sql = "SELECT username FROM user WHERE user_id = (SELECT user_id FROM comments)"; 我越来越空了。是我的大脑工作不好,还是我搞砸了什么 我只想在每个评论后面显示所有评论,前面有用户名。这不是加入-加入应该是: $sql = "SELECT usern

我有两张桌子。用户id、用户名、密码、年龄和注释注释id、注释、用户idforeign密钥

我正在尝试使用评论中提供的用户id从用户处获取用户名

我的查询如下所示:

$sql = "SELECT username FROM user WHERE user_id = (SELECT user_id FROM comments)";
我越来越空了。是我的大脑工作不好,还是我搞砸了什么


我只想在每个评论后面显示所有评论,前面有用户名。

这不是加入-加入应该是:

$sql = "SELECT username FROM user u JOIN comments c ON u.user_id = c.user_id";
当使用带=的子查询时,子查询必须返回一个值。要在相关表中显示所有相关记录,请改用JOIN。

使用in代替=

或者可以使用适当的联接,例如:

    SELECT username FROM user,comments WHERE user.user_id = comments.user_id

使用IN代替=。在“从评论中选择用户id”中选择用户id所在的用户的用户名;此外,您可能需要注释的where子句,否则您将从注释中获取所有用户id。另外,请用您正在使用的SQL版本标记您的问题。这两个语句不是一回事。第二个很可能比第一个生成更多的行,请在where子句中使用显式连接运算符而不是隐式连接
    SELECT username FROM user,comments WHERE user.user_id = comments.user_id