Me dan el ID de target_service y analizar el parámetro y necesito encontrar otros datos con las siguientes instrucciones SQL
SELECT
Distinct TARGET_ID
FROM
KB_OBJECT_PORTFOLIOS
WHERE
TARGET_SERVICE_ID=3780000000000220;
Ahora tengo el ID de destino = 3780000000000248
SELECT
count(*) AS COUNT
FROM
KB_OBJECT_PORTFOLIOS
WHERE
TARGET_ID=3780000000000248
AND
PARSE_PARAM='bkey=5366349'
¿Puedo escribir todo esto como una declaración sql en lugar de hacer dos? Mi experiencia con selecciones anidadas es que son demasiado costosas en cuanto al tiempo que llevará. así que si tienes una solución con una unión, sería mejor.
Los resultados deberían verse como
TARGET_ID, COUNT
3780000000000248, 1
Gracias
2 respuestas
Si entiendo correctamente, ni siquiera necesitas unirte. Puede fusionar las dos condiciones (en TARGET_SERVICE_ID
y en PARSE_PARAM
) y seleccionar el recuento para cada TARGET_ID
select TARGET_ID, count(*)
from KB_OBJECT_PORTFOLIOS
where TARGET_SERVICE_ID=3780000000000220 and
PARSE_PARAM = 'bkey=5366349'
group by TARGET_ID
¿Por qué necesitas dos consultas para esto? Si el primer SELECT le devuelve el TARGET_ID y dado que tanto TARGET_SERVICE_ID como TARGET_ID están en la misma tabla (KB_OBJECT_PORTFOLIOS), puede hacer algo como esto:
SELECT
count(*) AS COUNT
FROM
KB_OBJECT_PORTFOLIOS
WHERE
TARGET_SERVICE_ID=3780000000000220
AND
PARSE_PARAM='bkey=5366349'
Nuevas preguntas
mysql
MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) gratuito y de código abierto que utiliza lenguaje de consulta estructurado (SQL). NO UTILICE esta etiqueta para otras bases de datos como SQL Server, SQLite, etc. Estas son bases de datos diferentes que utilizan sus propios dialectos de SQL para administrar los datos.