반응형
마리아의 교차 쿼리DB
MariaDB 언어로 된 이 쿼리에 문제가 있습니다.필드는 같지만 값이 두 개인 교차를 수행합니다.문제는 INTRESS 쿼리를 사용할 수 없다는 것입니다.
어떻게 해야 하나요?나는 존재와 내면의 결합을 시도해 보았지만 여전히 작동하지 않습니다.
SELECT nombre
FROM actores
WHERE codactor IN ( SELECT actor
FROM participacion
WHERE (titulo,año) IN (SELECT titulo, año
FROM peliculas
WHERE director IN (
SELECT coddirector
FROM directores d
WHERE d.nombre='Alejandro'
AND d.apellido='Amenabar')))
INTERSECT
SELECT nombre
FROM actores
WHERE codactor IN ( SELECT actor
FROM participacion
WHERE (titulo,año) IN (SELECT titulo,año
FROM peliculas
WHERE director in (
SELECT coddirector
from directores p
WHERE p.nombre='Pedro'
AND p.apellido='Almodobar')));
INTERSECT
는 MariaDB 10.3.0에 도입되었습니다.
교차
교차 결과는 오른쪽과 왼쪽 SELECT 결과의 교차입니다. 즉, 두 결과 세트에 모두 있는 레코드만 작업 결과에 포함됩니다.
(SELECT e_name AS name, email FROM employees) INTERSECT (SELECT c_name AS name, email FROM customers);
당신의 질문에 대해서는 그대로 두셔도 됩니다.
일단 이렇게 해보세요, 배우들이 다 있는지 확인해보세요.같은 이름의 배우들이 있을 경우를 대비해 코닥터를 추가해야 합니다.
SELECT a.codactor, a.nombre -- add ', *' to see all columns and test query is ok.
FROM actores a
JOIN participacion p
ON a.codactor = p.actor
JOIN peliculas m
ON p.titulo = m.titulo
AND p.ano = m.ano
JOIN directores d
ON p.director = d.coddirector
WHERE (d.nombre = 'Alejandro' and d.apellido = 'Amenabar')
OR (d.nombre = 'Pedro' and d.apellido = 'Almodobar')
그 다음 추가GROUP BY
두 감독의 영화에 어떤 배우가 출연하는지 확인하는 것.
GROUP BY a.codactor, a.nombre
HAVING COUNT(DISTINCT coddirector) = 2
언급URL : https://stackoverflow.com/questions/41122168/intersect-query-in-mariadb
반응형
'programing' 카테고리의 다른 글
순환 유형 종속성을 해결하시겠습니까? (0) | 2023.08.01 |
---|---|
Mac OS X에서 Python을 위한 좋은 IDE는 무엇입니까? (0) | 2023.08.01 |
동일한 오리진 정책이 적용되는지 확인합니다. (0) | 2023.08.01 |
a.x 삭제 대 a.x = 정의되지 않음 (0) | 2023.08.01 |
ASP란 무엇입니까?요청에 해당하는 NET Core MVC.요청 URI? (0) | 2023.08.01 |