[英]Get values from multiple tables matching the records with if condition in mysql
我在這里輸入圖像描述,我從6個表(即憑證,采購,采購,供應商,市場,農民)中獲取數據,我將憑證表中的ID與采購和采購表進行匹配並獲取數據,我的問題是在采購表i中,當我以農民的身份獲取源我想從農民表以及賣方和市場表中獲取所有數據
我嘗試將內部聯接與開關盒和內部查詢一起使用,但出現錯誤
SQL查詢
SELECT voucher.voucher_id, sourcing.source_proc_id, procurement.procure_id,
case procurement.procure_from
when 'farmer' then
(select procurement.procure_source, farmer.* from procurement inner join farmer on
procurement.procure_source = farmer.farmer_id)
ELSE 'No Data' END AS Result
FROM vendor,market,farmer,
((voucher inner join sourcing on voucher.voucher_source_id = sourcing.source_proc_id) inner join procurement on voucher.voucher_proc_id= procurement.procure_id) WHERE voucher.voucher_status = "ACTIVE" group by voucher.voucher_id
農夫表
farmer_id | farmer_name | farmer_address
-----------------------------------------
F_001 | Name | Address
供應商表
vendor_id | vendor_name
-----------------------
V_001 | Vendor
憑證表
voucher_id | voucher_source_id | voucher_proc_id
------------------------------------------------
VOUC_001 | SRC_001 | PROC_001
采購表
procure_id | procure_from | procure_source
-------------------------------------------
PROC_001 | farmer | F_001
PROC_002 | vendor | V_001
Expected output voucher_id | voucher_source_id | procure_id | procure_from | procure_source | farmer_name ----------------------------------------------------------------------------------------- VOUC_001 | SRC_001 | PROC_001 | farmer | F_001 | Name
請告訴您您遇到的錯誤是什么。
同時,您可以嘗試以下方法。 我很難測試它是否可以工作。 因此,請告知結果和先前的錯誤。
SELECT
voucher.voucher_id,
sourcing.source_proc_id,
procurement.procure_id,
CASE
WHEN
procurement.procure_from = 'farmer'
THEN
(SELECT
procurement.procure_source, farmer.*
FROM
procurement
INNER JOIN
farmer ON procurement.procure_source = farmer.farmer_id)
ELSE 'No Data'
END AS Result
FROM
vendor,
market,
farmer,
((voucher
INNER JOIN sourcing ON voucher.voucher_source_id = sourcing.source_proc_id)
INNER JOIN procurement ON voucher.voucher_proc_id = procurement.procure_id)
WHERE
voucher.voucher_status = 'ACTIVE'
GROUP BY voucher.voucher_id;
我希望它能起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.