Представление + Левая ошибка возвращения Соединения 1054 в MySQL 5

Я пишу представление в MySQL 5.5. Мой код - тот ниже:

  DROP VIEW IF EXISTS vw_lancamentos;
  CREATE VIEW vw_lancamentos AS
  SELECT
    l.id,
    l.data_hora_lancamento,
    l.valor,
    l.descricao,
    l.veiculo_id,
    l.plano_conta_id,
    pc.id,
    pc.master_id,
    pc.descricao,
    pc.tipo_movimento
  FROM
    lancamentos l, plano_de_contas pc
  LEFT JOIN
    plano_de_contas on (l.plano_conta_id = pc.id);

When I try to compile this code above, the server returns this error: Error Code: 1054. Unknown column 'l.plano_conta_id' in 'on clause'

Как я могу заставить его работать? Я работал с Firebird прежде, и поскольку я вижу, что это очень отличается от MySQL.

0
nl ja de
Ничего себе. Я didn' t понял то, что эй u сказал мне. Жаль. _.
добавлено автор juniorgarcia, источник
Конечно, этот won' t работают над Firebird.
добавлено автор jachguate, источник
Тот синтаксис вопроса wouldn' t работали в Firebird также.
добавлено автор Mark Rotteveel, источник

2 ответы

Ваш СОЕДИНЕНИЕ синтаксис неправильный, и у вас есть две колонки с тем же самым именем. Если вы захотите возвратиться оба l.id и pc.id тогда, то вы захотите дать псевдоним обеим из тех областей, который отличает их:

CREATE VIEW vw_lancamentos AS
  SELECT
    l.id as l_id,  --  add alias
    l.data_hora_lancamento,
    l.valor,
    l.descricao,
    l.veiculo_id,
    l.plano_conta_id,
    pc.id as pc_id, --  add alias
    pc.master_id,
    pc.descricao,
    pc.tipo_movimento
  FROM lancamentos l
  LEFT JOIN plano_de_contas pc
     on l.plano_conta_id = pc.id;
4
добавлено
It' s все еще показывающий ошибку 1054 при сообщении, что это don' t знают колонку в линии pc.id, поскольку pc_id, - добавляют псевдоним
добавлено автор juniorgarcia, источник
@bluefeet, я просто добавил псевдонимы к областям descricao , и он хорошо работал. Спасибо за помощь!
добавлено автор juniorgarcia, источник
Я предполагаю l.id doesn' t нужен псевдоним... только тот НА пункте...
добавлено автор bonCodigo, источник
Хорошо согласно этому sqlfiddle it' s достаточный, давая псевдоним одному id как OP didn' t упоминают, какой тип данных любая из идентификационных областей держит. Так it' s не действительно необходимый с вашим рассуждением, хотя..:)
добавлено автор bonCodigo, источник
Спасибо. По крайней мере, это заставило меня сделать скрипку, чтобы подтвердить:) С точки зрения ясности в presenation, it' s легче иметь различный псевдоним.
добавлено автор bonCodigo, источник
Вы don' t нужен псевдоним на обоих, но вы - более обеспеченное обеспечение того на обоих так, что вы знаете, которые составляют таблицы, отчет прибывает из. plano_conta_id другое имя, таким образом, не будет никакого беспорядка с той колонкой. Это - эти две названные области id , который является проблемой.
добавлено автор Taryn, источник
@JuninhoDG видят, что мой редактировать, это должно быть зафиксировано теперь. Это было моей ошибкой, когда я переписал ее, я пропустил PC псевдоним на столе.
добавлено автор Taryn, источник
@JuninhoDG, счастливый помочь.:)
добавлено автор Taryn, источник
@bonCodigo я не говорю это, требуется. Я говорю, что, по крайней мере, мое предпочтение было бы к псевдониму обеими областями. Если вы псевдоним оба, то вы автоматически знаете в результате, из чего прибывает стол данные.
добавлено автор Taryn, источник

Пожалуйста, попробуйте это... жаль igonore мой комментарий, я просто заметил, как вы делаете , ОСТАВЛЕННЫЙ СОЕДИНЕНИЕ . Путь договаривается, Синтаксис соединения неправильный...

....

 FROM lancamentos l
 LEFT JOIN
 plano_de_contas pc on (l.plano_conta_id = pc.id);

ОТРЕДАКТИРУЙТЕ СОГЛАСНО КОММЕНТАРИЮ OP:

в вашем запросе Select вы выбираете thtese... оба то же самое... так, чтобы повторно исправить рассуждение, необходимо добавить псевдоним к одному.

    l.id,
    pc.id as pcid,

Править:

  • SQLFIDDLE DEMO : it's sufficient to provide alias to one column out of the two that has the same name/duplicate name...
2
добавлено
Привет человек. Теперь сервер показывает мне это: Код ошибки: 1060. Двойное имя столбца ' id'
добавлено автор juniorgarcia, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)