MySQL - 从另一个中减去一个查询集

时间:2016-02-05 18:36:24

标签: mysql subtraction except

我不知道怎么做,因为我的讲义告诉我使用"除了"在SQL中,但MYSQL似乎不支持这一点。我一直在想我应该使用"何时不在"作为替代方案,但我的问题是我需要比较的这些列都有不同的名称。

这是我的错误查询:

DefaultCellEditor editor = new ComboBoxCellEditor(combobox);
column.setCellEditor(editor);

我想从表中选择所有行" projects"其中id列没有出现在" projects_viewed"表。但该列被称为" project_id"而不是" id"因为它是外键。

基本上,这背后的逻辑是从这个查询返回的结果集应该是所有未被查看的项目ID(第二个表中的那些)。

1 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。这是一个使用outer joinnull支票的人:

select p.id
from projects p
   left join projects_viewed pv on p.id = pv.project_id
where pv.project_id is null

另一个not in

select id 
from projects 
where id not in (select project_id from projects_viewed)

我认为这些方法在mysqlnot exists更有效。