[英]SQL / MYSQL: Two statements in one query
film_actor
,像這樣:
╔═════════╦══════╗
║ film_id ║ Task ║
╠═════════╬══════╣
║ 1 ║ 162 ║
║ 1 ║ 15 ║
║ 1 ║ 20 ║
║ 2 ║ 162 ║
║ 2 ║ 12 ║
╚═════════╩══════╝
比以下查詢:
SELECT film_id
FROM film_actor
WHERE actor_id LIKE '162'
結果:
1
2
下一個查詢:
SELECT DISTINCT actor_id
FROM film_actor
WHERE film_id LIKE 'results from the query above'
結果應該是這樣的:
15
20
12
我怎樣才能把這兩個查詢放在一起? 第一個的結果不應該被顯示,它只是第二次和最終查詢所需要的。
使用IN
運算符:
SELECT DISTINCT actor_id
FROM film_actor
WHERE film_id in(SELECT film_id
FROM film_actor
WHERE actor_id LIKE '162')
或者使用JOIN
:
SELECT DISTINCT f2.actor_id
FROM film_actor f1
JOIN film_actor f2 ON f1.film_id = f2.film_id
WHERE f1.actor_id LIKE '162'
SELECT DISTINCT actor_id
FROM film_actor
WHERE film_id IN
(
SELECT film_id
FROM film_actor
WHERE actor_id LIKE '162'
)
就是這樣
SELECT DISTINCT actor_id
FROM film_actor
WHERE film_id in (
SELECT film_id
FROM film_actor
WHERE actor_id LIKE '162'
);
你要找的是subquery 。 你的應該是這樣的:
SELECT DISTINCT actor_id FROM film_actor WHERE film_id in
(SELECT film_id FROM film_actor WHERE actor_id LIKE '162)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.