Mysql
在 MySQL 中執行 UNION 和 LEFT JOIN 之後
我有 3 張桌子
- cdc_vw_Marbetes_Catalogo_Exis
- tblAdditional Marbetes
- tblMarbetesCongeladas
首先,我
UNION
用.cdc_vw_Marbetes_Catalogo_Exis``tblMarbetesAdicionales
(SELECT CLAVE_ART, DESCRIPCION_ART, EXISTENCIA_ART, MARCA_ART, exi_num_alm FROM cdc_vw_Marbetes_Catalogo_Exis WHERE EXISTENCIA_ART > 0 AND exi_num_alm = 25) UNION (SELECT clave, descripcion, existencia, marca, almacen FROM tblMarbetesAdicionales WHERE almacen = 25)
聯合的結果:列(CLAVE)
2457-84735-001 (cdc_vw_Marbetes_Catalogo_Exis) 107067860P (cdc_vw_Marbetes_Catalogo_Exis) BS-113A (cdc_vw_Marbetes_Catalogo_Exis) 6200 (tblMarbetesAdicionales) 6300 (tblMarbetesAdicionales)
表中
tblMarbetesCongeladas
有:BS-113A CS-23523 CS-120000 CV206ETCS
但是從那個聯合的結果中,我想做一個
LEFT JOIN
來獲取不在tblMarbetesCongeladas
.我試過這樣但它不起作用
(SELECT CLAVE_ART, DESCRIPCION_ART, EXISTENCIA_ART, MARCA_ART, exi_num_alm FROM cdc_vw_Marbetes_Catalogo_Exis WHERE EXISTENCIA_ART > 0 AND exi_num_alm = 25) UNION (SELECT clave, descripcion, existencia, marca, almacen FROM tblMarbetesAdicionales WHERE almacen = 25) LEFT JOIN tblmarbetescongeladas ON cdc_vw_Marbetes_Catalogo_Exis.CLAVE_ART = tblmarbetescongeladas.clave WHERE cdc_vw_Marbetes_Catalogo_Exis.CLAVE_ART IS NULL
我期望的結果是
2457-84735-001 107067860P 6200 6300
我很欣賞這些建議
你是在正確的方式,但只是搞砸了語法。
SELECT t1.* FROM ( SELECT CLAVE_ART , DESCRIPCION_ART , EXISTENCIA_ART , MARCA_ART , exi_num_alm FROM cdc_vw_Marbetes_Catalogo_Exis WHERE EXISTENCIA_ART > 0 AND exi_num_alm = 25 UNION SELECT clave , descripcion , existencia , marca , almacen FROM tblMarbetesAdicionales WHERE almacen = 25 ) AS t1 LEFT JOIN tblmarbetescongeladas AS t2 ON t1.CLAVE_ART = t2.clave WHERE t2.clave IS NULL ;