Ho una tabella di riferimento trasversale che assomiglia a questo:SQL selezionando le righe in cui il valore di una colonna è comune in un'altra colonna criteri
id document_id subject_id
1 8 21
2 5 17
3 5 76
4 7 88
5 9 17
6 9 76
7 2 76
Si abbina documenti a soggetti. I documenti possono essere membri di più di un argomento. Voglio restituire righe da questa tabella in cui un dato documento corrisponde allo a tutti gli oggetti in un determinato set di. Ad esempio, dato l'insieme di soggetti:
(17,76)
voglio tornare solo le righe per i documenti che corrispondono a tutti i soggetti nel set (almeno) da qualche parte nella tabella di riferimento croce. L'insieme uscita desiderata dato l'insieme sopra sarebbe:
id document_id subject_id
2 5 17
3 5 76
5 9 17
6 9 76
noti che l'ultima riga della tabella non è restituito perché tale documento corrisponde una sola delle materie richieste.
Qual è il modo più semplice ed efficace per eseguire una query in SQL?
Sarebbe bello sapere come si forniscono i parametri alla query. Vedo una risposta, mentre perfettamente a posto, funzionerà solo con esattamente 2 valori nel set di parametri. Se puoi limitare il numero di parametri, per esempio 10 max, allora è una conversazione. Se hai bisogno che l'app sia flessibile, i suggerimenti saranno diversi. – Eugene
Grazie, l'input è fondamentalmente "scegli un numero qualsiasi di soggetti" in modo che l'insieme degli ID di soggetto possa crescere tanto quanto il numero di soggetti (in teoria). – Maciek