mysql - 加入两个表,但仍然获得第一个表的完整数据

标签 mysql sql

首先我有表 users

+---------+----------+------------------+
| user_id | username |      email       |
+---------+----------+------------------+
|       1 | User 1   | email1@gmail.com |
|       2 | User 2   | email2@gmail.com |
|       3 | User 3   | email3@gmail.com |
|       4 | User 4   | email4@gmail.com |
+---------+----------+------------------+

接下来我有表 user_announcement

+---------+----------+---------+-----------+
| user_id | annou_id | is_read | read_time |
+---------+----------+---------+-----------+
|       1 |        1 |       0 | Time      |
|       2 |        1 |       1 | Time      |
|       1 |        2 |       0 | Time      |
|       2 |        3 |       1 | Time      |
+---------+----------+---------+-----------+

我正在尝试弄清楚如何获取公告 ID 1 的所有用户及其阅读状态 我希望输出有这样的东西

+---------+----------+------------------+----------+---------+-----------+
| user_id | username |      email       | annou_id | is_read | read_time |
+---------+----------+------------------+----------+---------+-----------+
|       1 | User 1   | email1@gmail.com | 1        | 0       | Time      |
|       2 | User 2   | email2@gmail.com | 1        | 1       | Time      |
|       3 | User 3   | email3@gmail.com | NULL     | NULL    | NULL      |
|       4 | User 4   | email4@gmail.com | NULL     | NULL    | NULL      |
+---------+----------+------------------+----------+---------+-----------+

我尝试了各种连接,但没有给我想要的结果。

最佳答案

在执行 LEFT JOIN 时,如果您需要过滤第二个表中的列,您应该在 ON 子句中执行。

SELECT *
FROM user u
LEFT JOIN user_announcement ua
ON u.user_id=ua.user_id AND ua.annou_id = 1

关于mysql - 加入两个表,但仍然获得第一个表的完整数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450002/

相关文章:

c# - 我正在尝试在 Visual Studio 中连接到远程 MySql 数据库

mysql - 如何在mysql数据库中创建foreach

php - 在 PHPMyAdmin 字段中存储星期几?

mysql - SQL - 行具有最新日期的分组依据

mysql - CONCAT 与 ROLLUP

python - 有什么方法可以将 python 集转换为在 SQL 的 "IN"语句中使用?

mysql - SQL查询, "Selecting"派生信息

php - 如何使用 mysqli dbdriver 知道行是否被删除

sql - Oracle - 将列设置为 NULL 不会删除 CHECK 约束

mysql - 更新整个表添加上一行的值