0

我有一个工单跟踪网站。在我的 new_workorder.php 脚本中,我的表单是由 table 中的值动态生成的cl_billing_codes。提交表单时,值cl_work_order_billing_codes与代码 id、数量和带有工作订单 ID 的列一起进入,以将值与工作订单联系起来。

我正在尝试构建一个 edit_workorder.php 脚本。我需要cl_billing_codes从 new_workorder.php 表单中提取同时加入用户提交数据数量的所有值。这是我最大的努力。

SELECT
  `cl_billing_codes`.`id`                          AS `id`,
  `cl_billing_codes`.`billing_code`                AS `billing_code`,
  `cl_billing_codes`.`desc`                        AS `desc`,
  `cl_billing_codes`.`point_value`                 AS `point_value`,
  `cl_work_orders_billing_codes`.`quantity`        AS `quantity`,
  `cl_work_orders_billing_codes`.`billing_code_id` AS `id2`
FROM
  `cl_billing_codes`
  LEFT JOIN `cl_work_orders_billing_codes`
      ON `billing_code` = `cl_work_orders_billing_codes`.`billing_code_id`
WHERE
  `cl_billing_codes`.`service` = '1'
  AND `cl_work_orders_billing_codes`.`work_order_id` = 1585
ORDER BY `billing_code`

这样做是行不通的,因为我需要列等于 1 的所有数据cl_billing_codesservice但只需要该表cl_work_order_billing_codes中的work_order_id值等于定义值的数量值,并且两个表中的计费代码匹配。

///// 额外的 /////

这是我要使用的表数据的示例。 http://sqlfiddle.com/#!2/49783/1

4

1 回答 1

1

我认为您只需要将work_orders_billing_codes表上的条件移入on子句即可。然后如果没有匹配,你仍然会得到所有适当的记录billing_codes

SELECT bc.`id` AS `id`, bc.`billing_code` AS `billing_code`, bc.`desc` AS `desc`,
       bc.`point_value` AS `point_value`,
       wobc.`quantity` AS `quantity`,
       wobc.`billing_code_id` AS `id2` 
FROM `cl_billing_codes` bc LEFT JOIN
     `cl_work_orders_billing_codes` wobc
     ON bc.id = wobc.`billing_code_id` AND wobc.`work_order_id` = 1585
WHERE bc.`service` =  '1' 
ORDER BY `billing_code`;
于 2013-08-29T01:20:24.437 回答