mysql - 接线表 - 除更换外

标签 mysql ms-access ms-access-2013

我有如下所示的关系:员工和培训, 每个员工都可以参加任何培训,因此这是基本的 M:M 到 1:M M:1 内容。

ERD 我有一个组合框来选择员工,我想要两个列表框来列出已完成的培训和可用的培训

类似这样的:enter image description here

然后有两个按钮,将所选内容从一个列表框移动到另一个列表框,并相应地更改记录。

我已进行查询以列出员工参加的所有培训:

SELECT Training.Name, Training.Trainer, Training.Cost, Training.Type, Training.[Length(Day)]
FROM Training INNER JOIN Participation ON Training.[Training ID] = Participation.Training
WHERE (((Participation.Employee)=[Forms]![Add Training 2]![cboEmp]))
ORDER BY Training.Name;

我在选择所有训练并过滤掉上面 SQL 查询中已选择的训练时遇到问题,简单的 EXCEPT 可以工作,但 ACCESS 不支持它。

这就是我想要的:

SELECT Training.Name, Training.Trainer, Training.Cost, Training.Type, Training.[Length(Day)]
FROM Training
EXCEPT
SELECT Training.Name, Training.Trainer, Training.Cost, Training.Type, Training.[Length(Day)]=
FROM Training INNER JOIN Participation ON Training.[Training ID] = Participation.Training
WHERE (((Participation.Employee)=[Forms]![Add Training 2]![cboEmp]))
ORDER BY Training.Name;

最佳答案

您可以只使用不存在不在:

SELECT Training.Name, Training.Trainer, Training.Cost, Training.Type, Training.[Length(Day)]
FROM Training
WHERE Training.TrainingId NOT IN (SELECT Participation.Training
                                  FROM Participation 
                                  WHERE Participation.Employee = [Forms]![Add Training 2]![cboEmp]
                                 )
ORDER BY Training.Name;

关于mysql - 接线表 - 除更换外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31408409/

相关文章:

C# MySql参数问题

php - 在 PHP 中更新记录时遇到问题

python - 如何获取受 SQL Alchemy 影响的行数?

vb.net - 将 Excel 单元格对齐到中心 VB - xlCenter 未声明

ms-access - 报告中不显示换行符

mysql - 返回具有计数的唯一值实体?

c# - 系统.Data.OleDb.OleDbException : Data type mismatch in criteria expression

sql - 根据在字段中找到的文本删除记录 (

ms-access - UCAExc 3.0.7 无效事务状态 : read-only SQL-transaction Sometimes when saving to . accdb

c# - 创建表查询