Неверный идентификатор при использовании естественного соединения

Я столкнулся с теми же проблемами с nexus7.

После этого исправлено это.

  1. Откройте опцию Developer в меню Settings на вашем устройстве.
  2. Switch off кнопка в правом верхнем углу экрана.
  3. Delete все debug permission из списка меню.
  4. Switch on кнопку в правом верхнем углу экрана.

теперь снова подключите ваше устройство к компьютеру, и все должно быть хорошо.

Извините за мой плохой английский, и некоторые названия меню (кнопок) могут быть неправильными в вашем язык, потому что мой - японский.

0
задан Juan Lopez 5 March 2019 в 12:23
поделиться

1 ответ

Не используйте естественное соединение! Я описываю это как «мерзость», потому что он использует столбцы, которые просто имеют одинаковые имена , а не должным образом объявленные отношения внешнего ключа. База данных отношений должна действительно выполнять «естественные» соединения на объявленных отношениях, а не на сопоставлении строк.

Это также затрудняет расшифровку и сопровождение запросов, поскольку ключи соединения не являются явными в запросе. Добавление столбца может сломать существующие запросы, и его будет довольно сложно отладить.

Вы также можете упростить логику объединения строк.

Я думаю, что запрос, который вы хотите, выглядит примерно так:

select ('Id: ' || e.employee_id  || e.first_name || '.', e.last_name) as Employee_info, 
       j.job_title, e.salary, d.department_name, 
       (select em.
        from employees em
        where e.manager_id = em.employee_id
      ) as Manager_name
from employees e join
     jobs j
     on e.job_id = j.job_id join
     departments d
     on e.department_id = d.department_id;
0
ответ дан Gordon Linoff 5 March 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: