SELECT iw.worker_work AS workers FROM ineb_worker iw LEFT JOIN sys_user su ON su.user_id = iw.user_id WHERE 1 = 1 AND su.is_can_account = 0 AND iw.worker_work in (26) GROUP BY iw.user_id 有数据但是查不到
时间: 2024-01-29 19:05:02 浏览: 23
可能是因为您使用的 LEFT JOIN 操作符,如果 ine_worker 表中有一些记录没有对应的 sys_user 表中的 user_id,那么这些记录在 JOIN 后会被过滤掉,因此您可能会找不到您想要的数据。您可以尝试使用 INNER JOIN 操作符,或者添加一个条件来包括没有对应记录的 ine_worker 数据行,例如:
```
SELECT iw.worker_work AS workers
FROM ineb_worker iw
LEFT JOIN sys_user su ON su.user_id = iw.user_id
WHERE 1 = 1
AND (su.is_can_account = 0 OR su.is_can_account IS NULL)
AND iw.worker_work IN (26)
GROUP BY iw.user_id;
```
这里我们添加了一个条件 `(su.is_can_account = 0 OR su.is_can_account IS NULL)`,这样就能够把没有对应记录的 ine_worker 数据行也包含进来。
相关问题
SELECT count(wvr.visit_time = NOW()),count(wvr.visit_time = "2023-05-18 12:00:00") FROM worker_visit_record wvr LEFT JOIN ineb_worker iw ON wvr.user_id = iw.user_id LEFT JOIN sys_user su ON su.user_id = iw.user_id 时间不生效
你的 SQL 语句中,使用了 `count` 函数,并在 `count` 函数内部使用了比较运算符 `=`,这是不正确的语法。
如果你想要统计 `worker_visit_record` 表中 `visit_time` 等于当前时间或者等于指定时间的记录条数,可以使用以下 SQL 语句:
```
SELECT COUNT(*) FROM worker_visit_record WHERE visit_time = NOW() OR visit_time = '2023-05-18 12:00:00';
```
需要注意的是,`NOW()` 函数返回的是当前时间,格式为 `YYYY-MM-DD HH:MM:SS`,因此在比较时需要使用字符串类型的时间。同时,如果你的 `visit_time` 字段有时分秒的信息,需要保证格式和传入的时间字符串一致。
iw.worker_work like concat ('%,', 0,2,26 ,',%') 将like改为in
将 `like` 改为 `in` 后的 SQL 语句如下:
```
iw.worker_work in (',0,2,26,')
```
这将匹配 `iw.worker_work` 字段中包含 `,0,2,26,` 的记录。注意,前后加上逗号是为了避免匹配到类似于 `10,20,260` 这样的字段值。