簡體   English   中英

根據另一個表中可能存在或可能不存在的多個動態值,從兩個不同的表中選擇並聯接

[英]Select and join from two different tables based on multiple dynamic values that may be or may not be present in the other table

我有兩個表,其中ID字段可能匹配,也可能不匹配,我想合並兩個表。 我最好的嘗試並沒有返回所有缺失的值。

SELECT * 
FROM ( 
SELECT matricula,SUM(monto) as 'pagosTotales' FROM referenciasdepago WHERE matricula IN('PM0000','PM0001') GROUP BY matricula
) AS A
INNER JOIN (
SELECT matricula, SUM(anual) as 'importeTotal' FROM documentos WHERE matricula IN ('PM0000','PM0001') GROUP BY matricula
) AS B ON A.matricula=B.matricula;

在“ WHERE matricula IN”之后,實際上可能包含50個以上的不同值。

這是我不想要的結果:

+-----------+--------------+-----------+--------------+
| matricula | pagosTotales | matricula | importeTotal |
+-----------+--------------+-----------+--------------+
| PM0000    |         1485 | PM0000    |        16030 |
+-----------+--------------+-----------+--------------+

這是另一個不希望的結果:

+-----------+--------------+-----------+--------------+
| matricula | pagosTotales | matricula | importeTotal |
+-----------+--------------+-----------+--------------+
| PM0000    |         1485 | PM0000    |        16030 |
| PM0000    |         1485 | PM0001    |           50 |
+-----------+--------------+-----------+--------------+

因為缺少表A中存在的PM0001。

代替內部聯接,請嘗試“完全外部聯接”-如果存在則將返回匹配,如果不存在則僅返回來自A或B的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM