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
scroll top