Sottoselezione molti-to-one in singola query
-
31-10-2019 - |
Domanda
Ho due tabelle con una chiave straniera da T1-> T2, in una relazione da uno a molti. Cioè, 1 tuplo nella tabella T1 è associata a 0..n tuple in t2.
Per creare un semplice esempio, diciamo che T1 è auto e T2 è una tabella di imperfezioni. Quindi, un'auto può avere imperfezioni 0..n e archiviamo queste imperfezioni in T2 come numeri interi.
Vorrei selezionare * solo da quelle auto in auto che contengono imperfezioni i1 E i2.
Eseguire un o invece è abbastanza facile:
SELECT * FROM cars AS T1
WHERE EXISTS (
SELECT imperfection FROM Imperfections as T2
WHERE T1.uid = T2.uid AND (imperfection = 1 OR imperfection = 2)
);
Ho provato a impostare la logica usando l'intersezione, ma a questo punto, mi chiedo se lo sto complicando troppo.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange