Почему Inner Join в MySQL возвращает несвязанную информацию?

У меня есть две таблицы в моей базе данных, одна из которых order а другой user,

Я хочу получить информацию для заказа вместе со связанным пользователем, который сделал заказ, для этого я использовал INNER JOIN объединить две таблицы на имя пользователя.

Однако проблема в том, что он выдает правильную информацию о заказе, но пользователь не является связанным пользователем и вместо этого является первой записью пользователя в базе данных.

Почему в мире это происходит?

Вот мой запрос:

    SELECT orders.oid,
orders.ordernumber,
orders.date_requested,
orders.date_approved,
orders.status,
orders.region,
orders.users_name,
orders.comments,
orders.customShippingAddress,
orders.approval_comments,
orders.approved_by_id,
users.firstname,
users.lastname,
users.address,
users.address2,
users.city,
users.`state`,
users.zip,
users.phonenum,
users.cellnum,
users.officenum,
users.region,
users.shipping_address
FROM orders
INNER JOIN users
ON orders.users_name=users.firstname + ' ' + users.lastname
WHERE orders.oid='$id'";

Я не понимаю, почему это не работает. Кто-нибудь может дать мне какое-то направление, пожалуйста?

1

Решение

Я думаю, ты хочешь

ON orders.users_name=CONCAT(users.firstname ,' ',users.lastname)

Ваша версия

ON orders.users_name=users.firstname + ' ' + users.lastname

вероятно, будет делать некоторые преобразования внутри, пытаясь сложить вещи, + Concats вещи в SQL Server, а не MySQL

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector