Применить кросс в MySQL - PullRequest
0 голосов
/ 15 мая 2019

Это мой sql в SQL Server. Как я могу добиться этого в MySQL?

SELECT COUNT(*) as total FROM (SELECT  personal.*
CROSS APPLY
  (
     SELECT  TOP 1 educ_attain.school
     FROM    educ_attain
     WHERE   personal.empno = educ_attain.empno
  ) educ
WHERE personal.status = 'ACTIVE'
) as num

Моя цель - исключить сотрудников, у которых нет записи в educ_attain. Я попытался использовать подзапрос, но все еще возвращаю сотрудников без записи.

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Вы можете попробовать любой из следующих способов:

SELECT * 
FROM personal
INNER JOIN educ_attain
ON personal.empno = educ_attain.empno
WHERE personal.status = 'ACTIVE'

ИЛИ

SELECT * 
FROM personal
WHERE empno IN
(
    SELECT DISTINCT empno FROM educ_attain
)
AND status = 'ACTIVE'

Для подсчета - просто используйте SELECT COUNT (*) для любого из указанных выше запросов.

0 голосов
/ 15 мая 2019

Not Exists, у сотрудников нет записи в eductable, тогда показывают

select * from
employee e
where not exists   
(
select 1 from eductable t
   on e.emp_id = t.emp_id
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...