J'ai ces deux tables et j'ai besoin d'une requête, qui génère chaque membre qui a le J'ai ces deux tables Je l'ai essayé avec la requête suivante, mais cela ne fonctionne pas correctement: p> SELECT s.matrnr, s.vorname, s.nachname
FROM student s
INNER JOIN teilgenommen t ON s.matrnr = t.matrnr
WHERE (t.lvnr = 050056) AND (t.lvnr != 050054)
3 Réponses :
Utiliser Les principaux zéros suggèrent que existe code> et n'existe pas code>: lvnr code> est vraiment stocké comme une chaîne. Si tel est le cas, des citations simples doivent être utilisées pour la valeur de comparaison. P> P>
Vous pouvez faire:
SELECT
s.matrnr,
s.vorname,
s.nachname
FROM
student s
INNER JOIN
(
select
matrnr,
max(case when lvnr='050056' then 1 else 0 end) as a,
max(case when lvnr='050054' then 1 else 0 end) as b
from
teilgenommen
group by
matrnr
having a=1 and b=0
) t
ON s.matrnr = t.matrnr
Ceci peut également être résolu avec agrégation et une clause code> pour filtrer: