sql - 帮助 MySQL 查询?

标签 sql mysql left-join

我有两个表 roomsusers。我只想获取 rooms.room_idusers.user_nameuser_id = 1。我可以使用以下 sql 获得所有用户的结果...

select rooms.room_id,
       rooms.user_id,
       users.user_name 
  from rooms 
LEFT JOIN users ON rooms.user_id = users.user_id

当我这样做以使用 user_id = 1 过滤结果时......我得到了错误。

select rooms.room_id,
       rooms.user_id,
       users.user_name 
  from rooms where rooms.user_id = 1 
LEFT JOIN users ON rooms.user_id = users.user_id

我该怎么办?

最佳答案

ANSI-92 JOIN 语法(当您看到 LEFT JOIN ... 时)规定 WHERE 子句位于 JOIN 之后:

   SELECT r.room_id,
          r.user_id,
          u.user_name 
     FROM ROOMS r 
LEFT JOIN users ON u.user_id = r.user_id
    WHERE r.user_id = 1 

你很接近。

关于sql - 帮助 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706460/

相关文章:

php - MySQL - 根据 IN () 返回多行

mysql - Mysql中有两个表数据的多个条件

SQL创建数据库时授予其他用户db_owner

python - SQLAlchemy 最近的日期时间

SQL Server 使用多对多相关表连接行

mysql - 如何为数字选择第一个唯一 ID

Mysql 将字符串读取为日期时间

c# - 如何在 C# 中使用 IDictionary 和 mysql 创建关联数组?

mysql - 高效的 MySQL 查询查找 A 中与 B 不匹配的条目

mysql - MySQL 中的多个多对多关系 JOINed