No puedo obtener los datos que no están en contenido en la otra tabla

Iniciado por yoelrodguez, 11 Febrero 2020, 16:11 PM

0 Miembros y 1 Visitante están viendo este tema.

yoelrodguez

Tengo la siguiente situación: tengo dos tablas t1 y t2 la tabla t1 tiene 16000 y tantos registro y la tabla t2 20000 y tanto registro, en la tabla t2 tengo guardado los datos por años(2020, 2019, 2018, etc). Ambas tablas estan relacionadas entres si. Lo que nesecito obtener es que todos los registros que no están contenidos en la t2 y si están en la t1 me lo muestre para un año que determinado ejemplo para el 2020 y no se tome los otros año.

En esta consulta que tengo desarrollada me devuelve cero registros.

A continuación le dejo el código que tengo hasta ahora para ver si me pueden ayudar.

Gracias.

SELECT
    t1.suscriberid AS id,
    @var1:=t2.pyear AS año,
    (SELECT
            IF(SUM(payments_global.commission),
                    SUM(payments_global.commission),
                    0)
        FROM
            payments_global
        WHERE
            payments_global.p_number = bob_global.suscriberid
                AND payments_global.pyear = @var1
                AND payments_global.month = '01') AS ene
FROM
    bob_global t1
        LEFT JOIN
    payments_global t2 ON t1.suscriberid = t2.p_number
WHERE
    1 AND t2.pyear = '2020'
        AND t1.id_insured = '2'
GROUP BY t1.suscriberid
HAVING ene = '0'

Hadess_inf

Hola, suponiendo que la relación entre tablas es la siguiente:

Código (sql) [Seleccionar]
TB1 (id int PK, año int, ...)
TB2 (id int PK, idtb1 int FK, año int, ...)


Podrías usar la siguiente consulta:

Código (sql) [Seleccionar]
SELECT *
FROM TB1
WHERE año = 2020
AND NOT id IN (SELECT idtb1 FROM TB2 WHERE año = 2020)


En todo caso seria bueno que especifiques la estructuras de tus tablas.

Saludos.

yoelrodguez