我有两张桌子。 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)";
我得到了空。我的大脑工作得很糟糕还是我搞砸了别的东西?
我只想在彼此之后显示所有评论,并使用之前的用户名。
答案 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