Tengo dos mesas. Tabla A y Tabla B. Ambas están conectadas con una relación de muchos a muchos.
Table A: ID --- 1 2 3 Table B: ID --- 4 5 6 7 Table AB: ID | A_ID | B_ID ---------------- 8 | 1 | 4 9 | 1 | 5 10 | 1 | 6 11 | 1 | 7 12 | 2 | 5 13 | 2 | 6 14 | 3 | 6Quiero encontrar todos los Id. de la tabla A, que tienen identificadores asignados de la tabla B solo de los identificadores B dados. Por ejemplo, aquí, pasamos ID en nuestras consultas: [5,6] Por lo tanto, debería devolver todos los ID de A que tienen asignados todos los valores de la matriz [5,6] o cualquier no. de valores pero solo de la matriz. Si también se asigna otra ID de matriz, no la incluya en el resultado. Aquí el resultado será 2 y 3. (1 no lo es porque también tiene asignado 4,7). Estoy usando Sequelize con mecanografiado.
Necesita una subselección para omitir A_ID no deseado. Zona de juegos: http://sqlfiddle.com/#!9/524468/3
SELECT DISTINCT A_ID FROM AB WHERE B_ID IN (5, 6) AND A_ID NOT IN ( SELECT DISTINCT A_ID FROM AB WHERE B_ID NOT IN (5, 6) )