Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Объединение LEFT JOIN, Объединяю две таблицы с помощью LEFT JOIN
Dagon2016  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43458
На форуме: 2 месяца, 2 дня
Карма:




Здравствуйте. Через 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, немогу понять.

Это сообщение отредактировал Dagon2016 - 3.10.2016 - 23:10
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 7 дней
Карма: 77




Потому что, это не правильно.
t1.user_id = t2.id
нужно
t1.id = t2.id
Скорее всего MySQL при приведении вашей строки "7ho66...." к числу , в результате получает 7. Отсюда и Qwerty "вылезает".

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


Это сообщение отредактировал Kusss - 3.10.2016 - 23:38
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dagon2016  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43458
На форуме: 2 месяца, 2 дня
Карма:




Цитата (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 пользователя
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 7 дней
Карма: 77




Ну Если они не равны, значит у тебя нет связей между таблицами. Или ты показал не всю структуру первой таблицы
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 293
Пользователь №: 40589
На форуме: 2 года, 1 день
Карма: 19




а вы читали про сравение строк с числами в принципе?
у вас здесь сравниваются два числа. а ваша билиберда при преобразовании в строку приравнена к "7"!
другой вопрос, как вы так архитектуру базы сделали, что у вас такая билиберда получилась. вам внешние ключи расставить...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dagon2016  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43458
На форуме: 2 месяца, 2 дня
Карма:




Цитата (depp @ 4.10.2016 - 14:09)
а вы читали про сравение строк с числами в принципе?
у вас здесь сравниваются два числа. а ваша билиберда при преобразовании в строку приравнена к "7"!
другой вопрос, как вы так архитектуру базы сделали, что у вас такая билиберда получилась. вам внешние ключи расставить...

Проблему помогли решить, просто в моем примере да, шло именно циферное сравнение, а не строчное. Но лично я так и не нашел, как сравнивать такие значения.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 293
Пользователь №: 40589
На форуме: 2 года, 1 день
Карма: 19




CAST(expr AS type)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса