Mysql 我想选择不符合where条件或“where”的行;除非条件是“;
我有两张桌子。 第一个是“tab_任务” 第二个表是“tab_user”Mysql 我想选择不符合where条件或“where”的行;除非条件是“;,mysql,sql,database,Mysql,Sql,Database,我有两张桌子。 第一个是“tab_任务” 第二个表是“tab_user” 从状态为'1'的任务选项卡中选择创建人。 现在我们有4行“aarav、yamini、manish和aarav” 现在我想从“tab_user”中获取“txt_full_name”,其中“txt_full_name”不等于“tab_任务的创建人”。 我的意思是我想从“tab_用户”中获取:rahul、jasmin、priyanka。一个简单的解决方案: SELECT txt_full_name FROM tab_user
从状态为'1'的任务选项卡中选择创建人。
现在我们有4行“aarav、yamini、manish和aarav”
现在我想从“tab_user”中获取“txt_full_name”,其中“txt_full_name”不等于“tab_任务的创建人”。
我的意思是我想从“tab_用户”中获取:rahul、jasmin、priyanka。一个简单的解决方案:
SELECT txt_full_name FROM tab_user
WHERE txt_full_name NOT IN (SELECT created_by from tab_task where status='1')
(请注意,上面假定由创建的
列为非空
,否则查询将不会返回任何行,因为与空
比较会产生未知
-)。一个简单的解决方案:
SELECT txt_full_name FROM tab_user
WHERE txt_full_name NOT IN (SELECT created_by from tab_task where status='1')
(请注意,上面假设由
创建的列为非空
,否则查询将不会返回任何行,因为与NULL
比较会产生未知
-)。尝试加入表,然后选择空行:
SELECT txt_full_name FROM tab_user
LEFT OUTER JOIN
(
SELECT created_by from tab_task where status='1'
)tbStat
ON created_by = txt_full_name
WHERE created_by IS NULL
尝试联接表,然后选择空行:
SELECT txt_full_name FROM tab_user
LEFT OUTER JOIN
(
SELECT created_by from tab_task where status='1'
)tbStat
ON created_by = txt_full_name
WHERE created_by IS NULL
除了
解决方案中@Jiri tosek的,您还可以使用加入
,存在
语法:
select u.txt_full_name
from tab_user u
left join tab_task t
on u.txt_full_name = t.created_by
and t.status = '1'
where t.created_by is null;
或
请参见此处。除了在
解决方案中使用@Jiri tosek的,您还可以使用加入
,存在
语法:
select u.txt_full_name
from tab_user u
left join tab_task t
on u.txt_full_name = t.created_by
and t.status = '1'
where t.created_by is null;
或
请看这里。如果子查询返回一个创建为NULL的_,会发生什么?这就是为什么我通常不存在
。如果突然出现空值,结果就不那么令人惊讶了。而且,不存在
比
中的具有更好的性能。如果子查询返回了一个创建为空的\u,会发生什么?这就是为什么我通常使用不存在
。如果突然出现一个空值,结果就不那么令人惊讶了。而且,不存在
将比
中的具有更好的性能。大致上:从x左选择x.*在y上连接y.something=x.something和y.otherthing=?其中y.primary_键为空:从x左选择x.*在y.something=x.something和y.otherthing=?其中y.primary_键为空