0
votes

Rejoignez-vous à la sous-requête. Voulez-vous voir des rangées non correspondantes

Je rejoint une sous-requête à la requête extérieure et j'ai besoin de voir les résultats de tout, même que l'adhésion ne correspond pas.

J'ai essayé de créer une table Temp pour la requête extérieure et une table Temp pour l'une des requêtes internes, puis essayé de participer à ce sujet. J'ai essayé de faire un insert à la requête extérieure, mais cela m'a donné une tonne de lignes. Je pense à une déclaration de fusion avec une table cible avec correspondance et non-fixation. xxx

Quand il y a un match, il apparaîtra, mais j'ai besoin de voir ceux qui n'ont pas de match pour que je puisse le faire passer à la prochaine sous-requête pour voir s'il y a une correspondance.


1 commentaires

Salut @ethgirl! Cela nous aiderait à répondre à votre question si vous avez ajouté une balise indiquant votre SGMS (par exemple, SQL Server, MySQL ...) et quelques données d'échantillons (voir exemple de reproductible minimal ).


3 Réponses :


0
votes

Sans plus de détails sur votre question et SGBD, je pense que cela aidera, mais je ne suis pas sûr:

Select a.*, ISNULL(b.col, c.col) --Will show you the column from b if it matched, or the column from c if there was no match on b
from Table a
left join Table b
on a.col = b.col... --More restrictive criteria here
left join Table c
on a.col = c.col...--Less restrictive criteria here


2 commentaires

Comment vous joignez-vous à deux tables et obtenez-vous des résultats et obtenez également des résultats d'enregistrements qui ne répondent pas à la jointure? Est-ce possible?


Bonjour @ethgirl - Différents types de jointures renvoient différents ensembles d'enregistrements. Si vous souhaitez enregistrer des enregistrements qui ne répondent pas à la jointure à renvoyer des deux côtés de la jointure, essayez Inscrivez-vous



0
votes

Sélectionnez Distinct T1.Id, T1.Col1, T1.col2, T2.col1 de TABLE1 T1 GAUCHE JOIS JOIN TABLE2 T2 ON T1.ID! = T2.ID


0 commentaires

0
votes

Vous semblez vouloir que la logique en cascade dans le rejoindre code>. Votre question est un peu vague sur les détails, mais cela ressemble à ceci:

Select coalesce(a.cola, c.cola) as cola,
       a.colb, a.colc,
       coalesce(b.cold, c.cold) as cold
       coalesce(b.cole, c.cole) as cole
from a left join
     b
     on a.cola = b.cola and
        a.colb = b.colb and
        a.colc = b.colc left join
     c
     on a.colA is null and  -- or is this b.colA
        a.colb = b.colb and
        a.colc = b.colc


0 commentaires