где пункт неоднозначный - PullRequest
       3

где пункт неоднозначный

0 голосов
/ 10 декабря 2018

использовать dallasfood;

select estab_id 
from estab as EST    
left join inspect as INSP
       on EST.estab_id = INSP.estab_id    
where inspdate = '8-3-17'
  and estab_id = '2473'

, пытаясь найти, как исправить неоднозначный результат предложения для Estab_id.Я пытаюсь найти нарушения, возвращенные на определенное учреждение на определенную дату и не могу понять, почему это неоднозначно

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы должны квалифицировать все столбцы в своих запросах, особенно если существует более одной таблицы.

Лучший псевдоним, как правило, самый короткий - сокращения для имени таблицы.Кроме того, вы должны использовать стандартные форматы даты, при условии, что ваша дата хранится как дата.

Итак, что-то вроде этого:

select e.estab_id 
from estab e left join 
     inspect i
     on e.estab_id = i.estab_id and i.inspdate = '2017-08-03'
where e.estab_id = 2473;

Некоторые другие примечания:

  • Я удалил одинарные кавычки вокруг 2473.Если estab_id действительно строка, включите одинарные кавычки.Если это число, то это плохая идея, потому что вы смешиваете типы данных.
  • Я предполагаю, что inspdate взято из inspect, поэтому он квалифицирован как i.
  • Условия для второй таблицы в left join обычно идут в предложении on.В противном случае объединение превращается во внутреннее объединение.
0 голосов
/ 10 декабря 2018

использовать имя псевдонима таблицы при выборе, как estab_id столбец в обеих таблицах, поэтому он показывает неоднозначность в вашем запросе

select EST.estab_id 
from estab as EST    
left join inspect as INSP
on EST.estab_id = INSP.estab_id    
where inspdate = '8-3-17'
and EST.estab_id = '2473'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...