2015-03-14 14 views
-1

Мне нужно написать запрос на основе приведенного ниже условия.Присоединиться к запросу в поле Datetime

У меня есть две таблицы, в которых мне нужно получить все столбцы из таблицы1 и еще один столбец из другого поля в зависимости от поля даты. Date 1 Поле в Table 1 находится в Datetime формате, Date2 Поле в table 2 ID в date Формат.

Я предполагаю, что ниже запрос, пожалуйста, обновите меня есть какие-либо изменения

Select Table1.*, c3 
From Table1 
Full Outer join 
Table2 
On Date(Date1) = Date2 
  • здесь я использую функцию Date для преобразования поля даты и времени в формат даты.
  • С3 столбец в таблице 2.

Пожалуйста, подтверди мне, который я должен присоединиться использовать?

+2

Итак, в чем именно вопрос? – Mureinik

+0

Смотрите это: http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-joins?rq=1 Он ответит на ваш вопрос. – jpw

ответ

1

Ваше предложение ON выглядит правильно. Ваша спецификация, похоже, вызывает JOIN (внутреннее соединение) или LEFT JOIN. MySQL не имеет FULL OUTER JOIN. Во всяком случае, это, вероятно, не имеет смысла для вашего приложения. (Но это догадка с моей стороны.)

Попробуйте это.

 SELECT t1.*, t2.c3 
     FROM Table1 t1 
    LEFT JOIN Table2 t2 ON Date(t1.Date1) = t.Date2 

Это даст вам все строки в Table1, а также связанные с ними c3 значения из Table2. Если в данной строке в таблице 1 отсутствует соответствующая строка в таблице 2, вы получите значение NULL для значения c3 (это то, что делает LEFT JOIN).

Смежные вопросы