MySQL查询帮助-仅向用户返回新项目

MySQL查询帮助-仅向用户返回新项目,mysql,sql,Mysql,Sql,如何提取只有新项目的用户列表 我试过这个问题。从状态为“新建”的项目中选择*按项目所有者分组; 但是mike出现在输出中,因为他也有一辆新车,但我只希望用户拥有专门的新车 Table 1 ------------------------------------------------------------ Table: User_Profiles Id username 1 mike 2 jim Table 2 --

如何提取只有新项目的用户列表

我试过这个问题。从状态为“新建”的项目中选择*按项目所有者分组; 但是mike出现在输出中,因为他也有一辆新车,但我只希望用户拥有专门的新车

Table 1
------------------------------------------------------------
Table: User_Profiles
Id            username
1              mike
2              jim


Table 2
------------------------------------------------------------
Table: Items
Id            item       status    item_owner       
1              car          new       mike
2              car          old       mike
3              car          new       jim
4              car          new       jim
我试过这个问题。从状态为“新建”的项目中选择*按项目所有者分组;
但是mike show mike也在输出中,因为他也有一辆新车,但我只希望用户拥有专门的新车

这里有一种方法:既计算旧的也计算新的,然后包括任何有一个或多个新的和b 0旧的:

Table 1
------------------------------------------------------------
Table: User_Profiles
Id            username
1              mike
2              jim


Table 2
------------------------------------------------------------
Table: Items
Id            item       status    item_owner       
1              car          new       mike
2              car          old       mike
3              car          new       jim
4              car          new       jim

下面是一个修改过的SQL小提琴

关键是要排除除“新”之外任何状态的所有所有者

SELECT DISTINCT i.item_owner 
FROM items i
where not exists (select 1
                  from items i2 
                  where i2.item_owner = i.item_owner 
                  and i2.status <> 'new')

从my_表x中选择x.*在y.id=x.id和y.status='old'上连接y,其中y.id为NULL;请编辑以将子查询更改为使用类似“选择1”的内容-看到“选择*”这样使用会使我的眼睛流血。为什么你要返回每一列只是为了看一行是否存在?这也很有效我编辑了一个小的选择不同的项目\u ownerFair point Ken。我永远不会在realy查询中使用select*,也不应该在这里的示例中使用它。编辑以反映这一点。