[英]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.