mysql - MySQL对多个表的选择查询不显示通信数据
问题描述
这是我当前的查询,它访问四个表。除此部分外,其他所有内容都显示正确的数据:
IF(tbl_shift.commission IS NULL,'0.00', (tbl_shift.commission*tbl_payment.subtotal)) AS comm,
这似乎没有访问表中的数据。
这是完整的查询:
SELECT tbl_payment.dateTime AS purchasedate, tbl_payment.invoiceNo AS invoice,
tbl_payment.subtotal AS total, tbl_payment.staffid AS employee,
tbl_users.fname AS firstname, tbl_users.lname AS lastname,
IF(tbl_shift.commission IS NULL,'0.00', (tbl_shift.commission*tbl_payment.subtotal)) AS comm,
(SELECT COUNT(1) AS qty FROM tbl_purchases
WHERE tbl_payment.invoiceNo=tbl_purchases.invoiceNo) AS qty
FROM `tbl_payment`
LEFT JOIN tbl_shift ON tbl_payment.staffid = tbl_shift.employeeId
AND tbl_payment.dateTime BETWEEN tbl_shift.startShift
AND tbl_shift.endShift
INNER JOIN tbl_users ON tbl_payment.staffid = tbl_users.id
WHERE tbl_payment.staffid = ".$staff."
AND dateTime BETWEEN '".$from."' AND '".$to."'
ORDER BY tbl_payment.dateTime DESC
解决方案
如果成功
IF(tbl_shift.commission IS NULL,'0.00', (tbl_shift.commission*tbl_payment.subtotal)) AS comm,
如果任何行都为真,这是否意味着您将在同一列中同时拥有字符串值和数字?也许试试这个,看看会发生什么:
IF(ISNULL(tbl_shift.commission)=1,0,(tbl_shift.commission*tbl_payment.subtotal)) AS comm,
推荐阅读
- javascript - this.init() 只有一种方法在类中有效
- python - 重命名某些单元格时跳过第一列
- java - java:初始化 PCKS11 提供程序时出错,得到 IOException C_GetFunctionList == NULL
- sql - SQL 使用新的外键复制数据
- c# - 如何获取 Xamarin 形式的实时视频处理帧?
- javascript - 无法使 Cypress 和 Pact 一起工作
- python - psycopg2 execute_values DELETE 语句返回语法错误
- sql - 尝试学习 SQL 聚合和子查询
- ios - 不变违规:本机模块不能为空。[React-Native IOS]
- shopify - 在渲染标签内循环