mysql - 如何实现基于2列的sql查询进行外连接

标签 mysql database

我有表 x 包含用户完成的类(class),但另一个表 y 包含分配给用户的类(class)。如果用户没有完成类(class),我需要检索所有带有空行的类(class)

[表 M]    [表 X]    [表 Y]
用户 ID     用户 ID  Cid  类(class) ID
1               1           1     1 2
2

我需要

[Table Z]

[用户 ID]     [类(class) ID]    [F]
1                    1              已完成
1                    2              未完成
2                    2              未完成
2                    1                未完成

最佳答案

你可以做这样的事情

SQL Fiddle Example

SELECT tm.userid,
  ty.courseid,
  CASE WHEN tx.cid IS NULL THEN 'not done' ELSE 'done' END AS 'F'
FROM tablem tm
JOIN tabley ty ON 1=1
LEFT JOIN tablex tx ON tm.userid = tx.userid AND ty.courseid = tx.cid
ORDER BY tm.USERID

关于mysql - 如何实现基于2列的sql查询进行外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28284881/

相关文章:

mysql - 像 MySQL 一样更新列

mysql - 将字符串从 base 16 转换为 36 对 mysql 中的所有值给出相同的结果

php - 计算左尝试行

mysql - SQL:JOIN 表的结果在其中一列上具有唯一值?

php - 奇怪的 : can't specify target table for update in FROM clause

mysql - 在 MySQL 中存储 Base64 PNG

python - dblite的open中第二个参数是什么意思

MySQL,外键约束没有任何区别

database - 为现有数据库生成 ERD

c++ - 如何在 Qt 中创建和加载 SQLite?