коррелированный подзапрос между двумя таблицами

0

У меня две таблицы:

Изображение 174551

и я пытаюсь применить ту же логику, что и http://www.dofactory.com/sql/subquery (последний пример)

и я придумал это:

SELECT id, project_name, 
    slug = (SELECT slug 
            FROM project_slugs ps 
            WHERE ps.project_id = p.id 
            ORDER BY created ASC 
            LIMIT 1) 
FROM projects p;

Однако я получаю сообщение об ошибке "# 1054 - Неизвестный столбец" slug "в" списке полей "". Я понимаю, что поле OrderCount не существует в таблице projects но также не имеет поля OrderCount в примере. Что я делаю неправильно?

Теги:
database
phpmyadmin

1 ответ

2
Лучший ответ

должно быть

SELECT 
   id,
   project_name,
     (SELECT slug FROM 
       project_slugs ps 
       WHERE ps.project_id = p.id 
       ORDER BY created ASC LIMIT 1) as slug 
 FROM projects p;

где подзапрос известен как slug, который является псевдонимом, это может быть любое имя.

  • 0
    Из любопытства в последнем примере ссылки, которую я показал, не было псевдонима для поля (не было ни в одной из таблиц). Как это работает?
  • 0
    если честно, я думаю, что этот синтаксис (OP) будет работать с некоторыми типами баз данных, но если вы хотите быть последовательным, просто используйте стандартный формат
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню