TGViewer
SQL и Анализ данных SQL и Анализ данных @databases_tg · 12.4K subscribers
Post #1450 637
🧩 SQL-задача: опечатка, которую база не заметит


CREATE TABLE users (user_id INT PRIMARY KEY);
CREATE TABLE orders (order_id INT PRIMARY KEY, buyer_id INT);

INSERT INTO users VALUES (1), (2), (3);
INSERT INTO orders VALUES (101, 1);

SELECT user_id
FROM users
WHERE user_id IN (
SELECT user_id FROM orders
);


Что вернёт запрос? Ошибку, только 1 или всех пользователей?

👇 Разбор

Вернёт 1, 2, 3.

В orders нет user_id, поэтому SQL находит колонку во внешнем запросе. Подзапрос становится коррелированным: для каждого пользователя он возвращает его собственный ID по одному разу на каждую строку orders.

Пока в orders есть строки, условие истинно для каждого пользователя. Если таблица пуста, запрос не вернёт ничего.

Правильный вариант:


SELECT u.user_id
FROM users AS u
WHERE u.user_id IN (
SELECT o.buyer_id
FROM orders AS o
);


💡 Указывайте алиасы таблиц: o.user_id вызвал бы ошибку и сразу выдал опечатку.

#SQL
  • 🤯 3
  • 👍 1
More from @databases_tg
  1. Oct 15, 2026Как не дать проекту по переходу на российскую базу данных превратиться в долгострой и сожр…
  2. Oct 14, 2026🦀 SurrealDB заменяет RocksDB собственным движком на Rust. Команда выпустила SurrealKV 1.0…
  3. Oct 12, 2026🔎 Конец программирования: создатель InfluxDB считает, что код скоро перестанут писать и ч…
  4. Oct 12, 2026Трюк Карпаты сработал: локальная LLM на Mac M5 выдает 117 токенов в секунду Как open-sourc…
  5. Oct 7, 2026🌍 SQL-задача: ближайшие точки с подвохом Карта размером 100 × 100 замкнута: переход вправ…
  6. Oct 6, 2026SQL с подвохом: могут ли IS NULL и IS NOT NULL одновременно вернуть false? Что выведет Pos…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →