簡體   English   中英

SQL / MYSQL:一個查詢中的兩個語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM