Шаг 077. Создаем таблицу backlink_risks

sqlГлава 6. Создаем новые таблицы из имеющихся

Что делаем

Создаем таблицу backlink_risks

Зачем SEO-специалисту

Витрина backlink_risks показывает внешние ссылки, которые ведут на проблемные URL.

Код. Вставьте 1 в 1

DROP TABLE IF EXISTS backlink_risks;

CREATE TABLE backlink_risks AS
SELECT b.backlink_id,
       p.page_id,
       p.url,
       b.source_url,
       b.domain_rating,
       cp.status_code,
       p.index_status
FROM backlinks AS b
JOIN pages AS p ON p.page_id = b.page_id
JOIN crawl_pages AS cp ON cp.page_id = p.page_id
WHERE cp.status_code != 200
   OR p.index_status = 'noindex';

Построчный разбор: что делает, для чего и как работает

Строка 1: DROP TABLE IF EXISTS backlink_risks; — Удаляет старую учебную таблицу с таким именем, если она уже была создана раньше.
Строка 2: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 3: CREATE TABLE backlink_risks AS — Создает новую таблицу из результата SELECT-запроса.
Строка 4: SELECT b.backlink_id, — Начинает запрос и перечисляет колонки или выражения, которые нужно вывести.
Строка 5: p.page_id, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 6: p.url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 7: b.source_url, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 8: b.domain_rating, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 9: cp.status_code, — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 10: p.index_status — Продолжает текущую SQL-команду: задает колонку, выражение, условие или значение.
Строка 11: FROM backlinks AS b — Указывает основную таблицу или источник данных для запроса.
Строка 12: JOIN pages AS p ON p.page_id = b.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 13: JOIN crawl_pages AS cp ON cp.page_id = p.page_id — Соединяет текущие данные с другой таблицей по условию ON.
Строка 14: WHERE cp.status_code != 200 — Начинает фильтр: дальше перечисляются условия, какие строки оставить.
Строка 15: OR p.index_status = 'noindex'; — Добавляет альтернативное условие: подойдет одно из условий.

Что должно получиться

Появится таблица backlink_risks.

Если появилась ошибка

Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.