php - 获取一张表的所有数据,而另一张表为空且也应用where子句

标签 php mysql sql

两个表:员工和工资

即使使用左连接工资表为空,我也可以从员工那里获取所有记录,但是当我在工资表上使用 where 时,它并不能获取所有员工。

如何获取所有员工记录??????

SELECT `s`.`basic_salary`,`e`.`name` 
FROM (`employees` as e) 
LEFT JOIN `salaries` as s ON `s`.`employee_id`=`e`.`employee_id` 
WHERE `s`.`session_id` = '19' AND `s`.`month_id` = '7' 
GROUP BY `e`.`employee_id`

最佳答案

第二个表的条件需要进入on子句:

SELECT s.`basic_salary`, e.`name` 
FROM `employees` e LEFT JOIN
     `salaries` s
     ON `s`.`employee_id`=`e`.`employee_id` AND
        `s`.`session_id` = '19' AND `s`.`month_id` = '7' 
GROUP BY e.`employee_id`

否则,您会将外连接转换为内连接。

关于php - 获取一张表的所有数据,而另一张表为空且也应用where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45554050/

相关文章:

java - 有什么方法可以在 HQL 中执行此查询吗?

php - "Unable to load dynamic library ' pdo_sqlsrv.so ' "Cenos7 PHP7.2.10

php - 如何从 BOT Telegram 发送的消息中获取 Message_id?

php - 使用 PHP 验证 Crontab 条目

mysql - 为什么这个 "extractvalue"返回 null

php - 如何获取具有相同列名的连接表的列名结果?

sql - 无法使用 ADSI 从 SQL 查询描述

php - MySQL:使用 AS 变量进行查询不起作用

mysql - MySQL 中空间索引的大小

mysql - SQL触发器更新同一个表