mysql - 如何使用参数匹配两个表时从第一个表获取空行

标签 mysql

我正在匹配两个名为 teacher_evaluation_questionfeedback 的表。 我想要 teacher_evaluation_question 表中的记录,其中 Student_id = 96 且反馈表中不存在该记录

SELECT teacher_evaluation_question.* 
FROM teacher_evaluation_question 
LEFT JOIN feedback ON feedback.eq_id = teacher_evaluation_question.eq_id 
WHERE feedback.student_id = 96 AND feedback.eq_id IS NULL 
GROUP BY teacher_evaluation_question.eq_id;

这是表 1 (teacher_evaluation_question):

+-------+-----------------+------------+
| eq_id |  question_set   | createdate |
+-------+-----------------+------------+
|     3 | QT1/&/QT2/&/QT3 | 2019-04-03 |
|     4 | K1/&/K2/&/K3    | 2019-05-01 |
|     5 | A1/&/B1         | 2019-03-05 |
|     6 | C1/&/C2         | 2019-04-23 |
+-------+-----------------+------------+

这是表 2(反馈):

+----+-------+------------+----------+--------+
| id | eq_id | student_id | question | rating |
+----+-------+------------+----------+--------+
| 13 |    26 |          2 | QT1      |      1 |
| 14 |    26 |          2 | QT2      |      4 |
| 15 |    26 |          2 | QT3      |      2 |
| 16 |     4 |         96 | K1       |      1 |
| 17 |     4 |         96 | K2       |      2 |
| 18 |     4 |         96 | K3       |      1 |
+----+-------+------------+----------+--------+

我期待这样的结果

+-------+-----------------+------------+
| eq_id |  question_set   | createdate |
+-------+-----------------+------------+
|     3 | QT1/&/QT2/&/QT3 | 2019-04-03 |
|     5 | A1/&/B1         | 2019-03-05 |
|     6 | C1/&/C2         | 2019-04-23 |
+-------+-----------------+------------+

注意:值student_id = 96是一个变量(可能会根据get请求参数$x而改变)

最佳答案

你可以这样做:

SELECT teacher_evaluation_question.* 
FROM teacher_evaluation_question 
WHERE NOT EXISTS 
(SELECT feedback.eq_id FROM feedback 
WHERE feedback.eq_id = teacher_evaluation_question.eq_id) 
GROUP BY teacher_evaluation_question.eq_id;

关于mysql - 如何使用参数匹配两个表时从第一个表获取空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55844893/

相关文章:

mysql - 无法在 Windows 上安装 python mysqlclient

mysql - 具有 3 个外键的表,在 JPA 中映射

mysql - 将 Ruby Mysql 查询转换为变量

php - MySQL INSERT INTO (SELECT) 已定义字段

php - 尝试确定 PHP/MySQL 中的日期差异,并传递给数据表

mysql - 从 MSSQL 迁移到 MYSQL 错误 1064 MYSQL Workbench

mysql - INSERT ON DUPLICATE KEY UPDATE 替代 UPDATE

mysql - 将 MySQL 表导出到 CSV 文件

mysql - 查询加载时间过长

mysql - 违反完整性约束 : 1062 Duplicate entry '1' for key 'PRIMARY'