Эта ошибка произошла со мной, когда я случайно изменил структуру uikit. Удаление и повторное добавление каркаса uikit в бинарнике ссылок с библиотекой, очистка полученных данных и перезапуск xcode не сработали. Я не хочу удалять свой xcode, поэтому я попытался скопировать коды класса, которые я мог бы изменить из другого компьютера с помощью xcode, который отлично работает и вставляет его в мой. Это сработало!
Вы близко. Вам просто нужно переместить фильтрацию на второй таблице в условие on
:
select d.date, a.entry, a.exit
from DATES d left join
ATTENDANCE a
on d.date = a.when and a.name = 'Bob'
where MONTH(d.date) = MONTH('2019-01-01') and
YEAR(d.date) = YEAR('2019-01-01')
Примечания:
Лучший способ написать условие даты:
where d.date >= '2019-01-01' and
d.date < '2019-01-01' + interval 1 month
Это лучше, потому что оптимизатор может использовать индекс на date
, если он доступен.
Вы можете использовать левое соединение и добавить условие фильтра в предложении ON
select d.date,a.entry,a.exit
from DATES d
left join ATTENDANCE a on a.date = d.date
and d.name = 'Bob' and MONTH (d.date) = MONTH('2019-01-01')
, а затем использовать условие, примененное к столбцу, относящемуся к левой объединенной таблице, в качестве внутреннего соединения ... в этом случае переместить эти условия в п.