{
  "app": {
    "name": "Mokabla",
    "url": "https://www.mokabla.com",
    "description": "Real interview questions from companies in Egypt, organised by company. Access is sold per company for 30 days."
  },
  "page": {
    "kind": "question",
    "title": "Question · sql-joins-and-execution-plans",
    "humanPath": "/en/c/ejada/sql-joins-and-execution-plans",
    "humanOnly": false
  },
  "identity": {
    "class": "declared",
    "agent": "ClaudeBot",
    "operator": "Anthropic",
    "verified": false,
    "reason": "The user agent is ClaudeBot (Anthropic), which identifies itself as an AI agent.",
    "signals": [
      "Known agent user agent"
    ],
    "claimable": false
  },
  "state": {
    "question": {
      "slug": "sql-joins-and-execution-plans",
      "title": "SQL Joins and Execution Plans",
      "difficulty": "medium",
      "tags": [
        "sql",
        "technical",
        "backend",
        "data-eng"
      ],
      "is_free": true,
      "locked": false,
      "frequency": 0.5,
      "last_reported_at": "2026-02-12T12:12:46.822557Z",
      "url": "https://www.mokabla.com/en/c/ejada/sql-joins-and-execution-plans",
      "agent": {
        "page": "https://www.mokabla.com/agent/en/c/ejada/sql-joins-and-execution-plans",
        "question": "https://www.mokabla.com/agent/_call/get_question?company=ejada&question=sql-joins-and-execution-plans"
      },
      "company": {
        "slug": "ejada",
        "name_en": "EJADA"
      },
      "body_md": "## What they ask\nThe technical interview for developer and data roles leans hard on SQL Server. Three themes come up: joins, reading an execution plan, and query optimisation. The HR part of the same session asks about previous experience and, for fresh graduates, how you worked with data during college. Questions in this area, for example:\n\n**Joins.** Given `customers(id, name, city)` and `orders(id, customer_id, total, created_at)`, write a query that returns every customer with the number of orders and total spend in 2025, including customers with zero orders.\n\nExample: customer Mona with orders 200 and 300 in 2025 returns `Mona, 2, 500`; customer Adel with no orders returns `Adel, 0, 0`.\n\nThen: rewrite it to return only customers who never ordered (anti-join), and explain the difference between `LEFT JOIN ... WHERE right.id IS NULL` and `NOT EXISTS`.\n\n**Execution plans.** What is the difference between an index seek and an index scan? When does the optimiser choose nested loops vs hash join vs merge join? What does a key lookup tell you, and how would you remove it?\n\n**Optimisation.** Why `WHERE YEAR(created_at) = 2025` cannot use an index on `created_at`, and how to rewrite it. When a covering index is worth its write cost.\n\n## What they look for\nCorrect joins with the aggregation on the right side of the join, and the ability to read a plan and say what you would change, not just that \"it needs an index\".",
      "follow_ups_md": "- The report query takes 40 seconds in production but 1 second on your machine. What differs and how do you check?\n- How would you paginate this result set efficiently for a web grid?"
    },
    "paid": false,
    "access": "Question bodies are paid content: a person buys 30 days of access per company (200 EGP or 200 points) in the human app. Agents get titles, tags and difficulty; bodies only for free questions."
  },
  "actions": [
    {
      "name": "get_question",
      "description": "One question with its body. Bodies are paid content unless the question is free.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "question": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/get_question?company=ejada&question=sql-joins-and-execution-plans",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "list_questions",
      "description": "The questions reported at a company: titles, tags, difficulty, whether each is free or paid.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "page": "number?"
      },
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=ejada",
      "ready": true,
      "missing": []
    },
    {
      "name": "buy_access",
      "description": "Buy 30 days of access to a company.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "payment",
      "input": {
        "company": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/buy_access?company=ejada",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "post_comment",
      "description": "Comment on a question.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "write",
      "input": {
        "question": "string",
        "text": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/post_comment?question=sql-joins-and-execution-plans",
      "ready": false,
      "missing": [
        "text"
      ],
      "humanPath": "https://www.mokabla.com/en/companies"
    }
  ],
  "navigate": [
    {
      "label": "This question, as data (free questions only)",
      "href": "https://www.mokabla.com/agent/_call/get_question?company=ejada&question=sql-joins-and-execution-plans"
    },
    {
      "label": "All questions at this company",
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=ejada"
    },
    {
      "label": "The company page",
      "href": "https://www.mokabla.com/agent/en/c/ejada"
    },
    {
      "label": "SQL Joins and Execution Plans · page",
      "href": "https://www.mokabla.com/agent/en/c/ejada/sql-joins-and-execution-plans"
    }
  ],
  "notices": [
    {
      "severity": "info",
      "message": "This classification is final for the session: it came from a strong signal, not a guess. The human pages are not served to agents."
    },
    {
      "severity": "info",
      "message": "Unverified agents are read-only. Signed requests (Web Bot Auth) are the path to write access."
    }
  ],
  "meta": {
    "requestId": "ag_def5f51198ad",
    "policyVersion": "mokabla-2026-11-03",
    "generatedAt": "2026-11-03T17:41:20.417Z",
    "jsonUrl": "https://www.mokabla.com/agent/en/c/ejada/sql-joins-and-execution-plans?format=json",
    "manifestUrl": "https://www.mokabla.com/.well-known/agentgate.json",
    "humanUrl": "https://www.mokabla.com/en/c/ejada/sql-joins-and-execution-plans",
    "humanClaimUrl": "https://www.mokabla.com/agent/_claim/human?to=%2Fen%2Fc%2Fejada%2Fsql-joins-and-execution-plans"
  }
}