2013-08-29 50 views
0

我有一個工單跟蹤站點。在我的new_workorder.php腳本中,我的表單是由表cl_billing_codes中的值動態生成的。提交表單時,值將與cl_work_order_billing_codes一起使用代碼ID,數量和包含工單ID的列將值與工單關聯。選擇所有的表B與表B的左連接列與不影響顯示所有表A的多個小輪A

我正在嘗試構建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` 

否則它不能正常工作,因爲我需要在cl_billing_codesservice列等於1,但所有的數據這種方式只有在該表中的work_order_id值等於定義值和cl_work_order_billing_codes數量值賬單代碼在兩個表中都匹配。

/////附加/////

這裏是我的表中的數據一起工作的一個樣本。 http://sqlfiddle.com/#!2/49783/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`; 
+0

這將返回所有數量值作爲NULL,即使您可以從我的示例數據中看到work_order_id 1585的數量在cl_work_orders_billing_codes表中有大量記錄。它比我想象的要緊密得多。 :\ –

+0

@JesseWilliamSzypulski。 。 。問題是加入。你有'billing_code'。但是,你想'id'。編輯後的版本現在可以運行 –

+0

謝謝:)這就是我一直在尋找的東西。不知道如何使用兩種不同類型的「where」數據。 –

相關問題