我在MariaDB语言中遇到此查询的问题。我想与相同的字段进行交叉,但有两个值。问题是我无法使用 INTERSECT 查询。
我该怎么办?我尝试过存在和内部联接,但它仍然无法正常工作。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laurent Doucet — Graphic designer</title>
<meta name="description" content="—">
<link rel="icon" href="img/favicon.png">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/fonts.css" rel="stylesheet">
答案 0 :(得分:1)
<强> INTERSECT 强>
交叉的结果是左右SELECT结果的交集,即只有两个结果集中存在的记录才会包含在操作结果中。
(SELECT e_name AS name, email FROM employees) INTERSECT (SELECT c_name AS name, email FROM customers);
至于你的查询,你可以保持原样。
答案 1 :(得分:0)
首先尝试这样,检查你是否拥有所有演员。我必须添加编码器,以防你有同名的演员。
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