我有幾個類似這樣的查詢:
SELECT name
FROM people
WHERE id IN (SELECT person_id
FROM directors
WHERE movie_id IN (SELECT id
FROM movies
WHERE id IN (SELECT movie_id
FROM ratings
WHERE rating = 10)));
它有效,但我不認為嵌套如此多的查詢會在長期、可讀性方面起作用。關于如何以更清晰的方式撰寫它的約定是什么?你會為每個查詢只使用一行嗎?
uj5u.com熱心網友回復:
你可以這樣做:
SELECT name
FROM people p
join directors d on d.person_id = p.id
join movies m on m.id = movie_id IN (SELECT id
join ratings r on r.movie_id = m.id;
uj5u.com熱心網友回復:
我個人格式化 SQL 陳述句的方法是使用 2 個空格縮進。我發現這提高了[對我]的可讀性。例如:
SELECT name
FROM people
WHERE id IN (
SELECT person_id
FROM directors
WHERE movie_id IN (
SELECT id
FROM movies
WHERE id IN (
SELECT movie_id
FROM ratings
WHERE rating = 10
)
)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346151.html
下一篇:在SQLQuery上使用
