[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объединение LEFT JOIN
Dagon2016
Здравствуйте. Через LEFT JOIN соединяю эти таблицы:
user posted image
user posted image
Подскажите пожалуйста, почему вот этот незарегистрированный user_id(7ho66ip5dmibm4b1uvjsvntvr0) сравнивается с зарегистрированным id7, и выводится под логином QWERTY, хотя это разные люди. Запрос такой:
("SELECT t1.*, t2.login as login, DATE_FORMAT(t1.time_add, '%d.%m.%y, %H:%i') as f_time_add FROM `".PREFIX."_history_out` AS t1 LEFT JOIN `".PREFIX."_users` AS t2 ON t1.user_id = t2.id LIMIT ".$start_pos.", ".$perpage."");
Наставьте меня пожалуйста на путь истинный, два дня читаю про эти JOIN, немогу понять.
Kusss
Потому что, это не правильно.
t1.user_id = t2.id
нужно
t1.id = t2.id
Скорее всего MySQL при приведении вашей строки "7ho66...." к числу , в результате получает 7. Отсюда и Qwerty "вылезает".

Add. Так и есть, преобразует также как php , если писать (int)
SELECT 1 + '2fg4'
--> 3
Dagon2016
Цитата (Kusss @ 3.10.2016 - 23:27)
Потому что, это не правильно.
t1.user_id = t2.id
нужно
t1.id = t2.id
Скорее всего MySQL при приведении вашей строки "7ho66...." к числу , в результате получает 7. Отсюда и Qwerty "вылезает".

Add. Так и есть, преобразует также как php , если писать (int)
SELECT 1 + '2fg4'
--> 3



t1.id = t2.id не, это получается id сделки = id пользователя
Kusss
Ну Если они не равны, значит у тебя нет связей между таблицами. Или ты показал не всю структуру первой таблицы
depp
а вы читали про сравение строк с числами в принципе?
у вас здесь сравниваются два числа. а ваша билиберда при преобразовании в строку приравнена к "7"!
другой вопрос, как вы так архитектуру базы сделали, что у вас такая билиберда получилась. вам внешние ключи расставить...
Dagon2016
Цитата (depp @ 4.10.2016 - 14:09)
а вы читали про сравение строк с числами в принципе?
у вас здесь сравниваются два числа. а ваша билиберда при преобразовании в строку приравнена к "7"!
другой вопрос, как вы так архитектуру базы сделали, что у вас такая билиберда получилась. вам внешние ключи расставить...

Проблему помогли решить, просто в моем примере да, шло именно циферное сравнение, а не строчное. Но лично я так и не нашел, как сравнивать такие значения.
depp
CAST(expr AS type)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.