在SQL中连接两个表的问题

时间:2015-06-01 21:38:17

标签: sql

我有两张桌子。 user(user_id, username, password, age)comment(comment_id, comment, user_id(foreign key))

我尝试使用评论中提供的user_id来获取用户的用户名。

我的查询如下:

$sql = "SELECT username FROM user WHERE user_id = (SELECT user_id FROM comments)";

我得到了空。我的大脑工作得很糟糕还是我搞砸了别的东西?

我只想在彼此之后显示所有评论,并使用之前的用户名。

2 个答案:

答案 0 :(得分:1)

这不是联接 - 加入将是:

$sql = "SELECT username FROM user u JOIN comments c ON u.user_id = c.user_id";

当您使用带有=的子查询时,子查询必须返回一个值。要显示相关表格中的所有相关记录,请改用JOIN

答案 1 :(得分:1)

使用IN代替"="

    SELECT username FROM user WHERE user_id IN (SELECT user_id FROM comments);

或者您可以使用正确的连接,例如:

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