是否可以像'OR'函数那样查询。
更新示例:
Select S.*, U.* from Staff S, Unit U where S.Unit='' OR S.Unit= U.UnitCode;
员工表架构:
Staff ID, Staff Name, UnitCode, StaffNumber
单位架构:
UnitCode, ClassCode
以上更新的示例有效。但工作人员记录哪个单位为空白将与所有单位代码重复。
例如结果输出:
Staff ID Staff Name UnitCode ClassCode Staff Number
1 John IT1 B123 234
2 Sally BUS2 B234 0589
3 Johnson IT1 B123 111
4 Johnson BUS2 B234 111
由于
答案 0 :(得分:2)
由于您使用的是SQLite,请使用OR
代替||
Select S.*, U.*
from Staff S, Unit U
where S.Unit = '' OR S.Unit= U.UnitCode;
如果删除这个条件会有什么结果? S.Unit = ''
Select S.*, U.*
from Staff S INNER JOIN Unit U
on S.Unit = U.UnitCode;
更新1
你可以试试这个吗?SELECT x.*
FROM Staff x INNER JOIN
(Select DISTINCT S.StaffID
from Staff S INNER JOIN Unit U
on (S.Unit = U.UnitCode) OR
(S.Unit = '')
) y ON x.StaffID = y.StaffID
答案 1 :(得分:1)
是的,您可以使用OR代替||
答案 2 :(得分:1)
Select S.*, U.* from Staff S, Unit U where S.Unit='' OR S.Unit IS null OR S.Unit= U.UnitCode;
编辑:
SELECT
CASE WHEN S.Unit='' THEN S.Unit END AS blankOne,
CASE WHEN S.Unit= U.UnitCode THEN S.Unit END AS MatchOne
FROM Staff S, Unit U
WHERE S.Unit= U.UnitCode
答案 3 :(得分:1)
我认为你在left join之后:
Select S.*, U.*
from Staff S
left join Unit U
on S.Unit= U.UnitCode
这将从Unit中检索所有人员记录和匹配记录(如果存在)。如果不是该记录的Unit中的所有列都为空。