SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.10.2012 12:56:34

treamz
Участник
Зарегистрирован: 03.10.2012
Сообщений: 5

Непонятный глюк с JOIN

Есть две таблицы и один запрос

делаю вот так

SELECT c.*, g.*
FROM facelines g
LEFT JOIN wa_contact c ON g.contact_id = c.id
ORDER BY c.id DESC


Выводит тоже все поля, кроме одного, тип поля ENUM и ему присваивается значение NULL, вместо значений, которые действительно там присутствуют. Это M или F или NULL.

В чем может быть загвозка? Может для такого типа полей необходима своя специфичная выборка? При запросе
SELECT c.* FROM wa_contact c ORDER BY id DESC

это поле выводится как необходимо.

Спасибо!

Неактивен

 

#2 03.10.2012 14:00:49

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Непонятный глюк с JOIN

treamz написал:

Выводит тоже все поля, кроме одного, тип поля ENUM и ему присваивается значение NULL, вместо значений, которые действительно там присутствуют. Это M или F или NULL.

Видимо для записей, удовлетворяющих условию g.contact_id = c.id, значение этого поля как раз NULL.
Или приводите пример с данными.

Неактивен

 

#3 03.10.2012 14:40:29

treamz
Участник
Зарегистрирован: 03.10.2012
Сообщений: 5

Re: Непонятный глюк с JOIN

Структура БД:
http://www.taxistory.ru/wa-data/public/ … /7.970.gif

Таблица c данными:
http://www.taxistory.ru/wa-data/public/ … /9.970.gif

Сам запрос:

SELECT g.id as id_text, g.contact_id, g.name, g.text, g.photo_id, g.foto_name, g.datetime,
c.name as contact_name, c.photo, c.birthday, c.id as id_person, c.sex
FROM facelines g
LEFT JOIN wa_contact c ON g.contact_id = c.id
ORDER BY datetime DESC


Результат:
http://www.taxistory.ru/wa-data/public/ … /8.970.gif

Во всех полях данные NULL и только в одном они присутствуют.

Заранее благодарю за ответ

Отредактированно treamz (03.10.2012 14:41:20)

Неактивен

 

#4 03.10.2012 15:59:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Непонятный глюк с JOIN

Что вас удивляет?
В таблице wa_contact у записи с id=54 поле sex определено как NULL, а для записи id=55 - m.
Условию g.contact_id = c.id соответствуют только строки с id 54 и 55.
Первые 13 строчек вашего результата как раз и соответствуют записи с id 54, а последняя - 55.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson