[{"data":1,"prerenderedAt":122},["ShallowReactive",2],{"term-s\u002Fsubquery":3,"related-s\u002Fsubquery":108},{"id":4,"title":5,"acronym":6,"body":7,"category":89,"description":90,"difficulty":91,"extension":92,"letter":93,"meta":94,"navigation":95,"path":96,"related":97,"seo":102,"sitemap":103,"stem":106,"subcategory":6,"__hash__":107},"terms\u002Fterms\u002Fs\u002Fsubquery.md","Subquery",null,{"type":8,"value":9,"toc":83},"minimark",[10,15,19,23,26,30,72,76,79],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"A subquery is a query inside a query. The inner query runs first and its result is used by the outer query. It is like asking 'give me all users whose ID appears in (give me all user IDs who ordered something last week)'.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"A subquery is a SELECT statement nested inside another SQL statement. It can appear in the WHERE clause (to filter based on another query's results), the FROM clause (as a derived table), or the SELECT clause (as a scalar subquery). Correlated subqueries reference the outer query and execute once per outer row.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- Users who have placed at least one order\nSELECT name FROM users\nWHERE id IN (\n  SELECT DISTINCT user_id FROM orders\n);\n","sql","",[38,39,40,48,54,60,66],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,47],{},"-- Users who have placed at least one order\n",[41,49,51],{"class":43,"line":50},2,[41,52,53],{},"SELECT name FROM users\n",[41,55,57],{"class":43,"line":56},3,[41,58,59],{},"WHERE id IN (\n",[41,61,63],{"class":43,"line":62},4,[41,64,65],{},"  SELECT DISTINCT user_id FROM orders\n",[41,67,69],{"class":43,"line":68},5,[41,70,71],{},");\n",[11,73,75],{"id":74},"when-youll-hear-this","When You'll Hear This",[16,77,78],{},"\"Use a subquery to filter based on aggregate results.\" \u002F \"Subqueries can often be rewritten as JOINs for better performance.\"",[80,81,82],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":50,"depth":50,"links":84},[85,86,87,88],{"id":13,"depth":50,"text":14},{"id":21,"depth":50,"text":22},{"id":28,"depth":50,"text":29},{"id":74,"depth":50,"text":75},"database","A subquery is a query inside a query. The inner query runs first and its result is used by the outer query.","intermediate","md","s",{},true,"\u002Fterms\u002Fs\u002Fsubquery",[98,99,100,101],"SELECT","WHERE","JOIN","N+1 Query",{"title":5,"description":90},{"changefreq":104,"priority":105},"weekly",0.7,"terms\u002Fs\u002Fsubquery","UL6y8HdLLpXy8OHyYWnkB6sEQlSfdNMyIlUWG1iAQgA",[109,112,115,119],{"title":100,"path":110,"acronym":6,"category":89,"difficulty":91,"description":111},"\u002Fterms\u002Fj\u002Fjoin","JOIN combines rows from two tables based on a related column.",{"title":101,"path":113,"acronym":6,"category":89,"difficulty":91,"description":114},"\u002Fterms\u002Fn\u002Fn-1-query","N+1 is when your code runs 1 query to get a list of things, then runs 1 more query for EACH thing on the list.",{"title":98,"path":116,"acronym":6,"category":89,"difficulty":117,"description":118},"\u002Fterms\u002Fs\u002Fselect","beginner","SELECT is how you ask a database to give you data. It is the 'Read' in CRUD.",{"title":99,"path":120,"acronym":6,"category":89,"difficulty":117,"description":121},"\u002Fterms\u002Fw\u002Fwhere","WHERE is how you filter which rows a query affects. Without WHERE, SELECT returns everything, UPDATE changes everything, DELETE deletes everything.",1776518316220]