使用 all 运算符选择子查询而不加入 mysql

Selecting sub queries using all operator without joining in mysql

我需要显示部门 1 的所有工人的 ID、姓名和出生日期,这些工人比部门 2 的工人年轻。我正在尝试 而没有 加入。

这是我目前的情况,当我 运行 它不会失败,但它会显示部门 2 的所有员工,无论他们的生日如何。

SELECT ID, CONCAT(fName," " ,lName) AS "Worker Name", dob
FROM Worker
WHERE dob <= ALL (SELECT department
FROM Worker
WHERE deparment = 1 
)
AND deparment = 2;

你想检查 dob 那么你应该 select dob

  SELECT ID, CONCAT(fName," " ,lName) AS "Worker Name", dob
  FROM Worker
  WHERE dob <= ALL (SELECT dob
  FROM Worker
  WHERE deparment = 1 
  )
  AND deparment = 2;

这应该列出部门 1 中比部门 2 中的工人更年轻的所有工人:

SELECT ID, CONCAT(fName," " ,lName) AS "Worker Name", dob
FROM Worker
WHERE dob <  (SELECT min(w2.dob)
FROM Worker w2
WHERE w2.deparment = 2
)
AND deparment = 1