У меня есть две таблицы в моей базе данных, одна из которых 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'";
Я не понимаю, почему это не работает. Кто-нибудь может дать мне какое-то направление, пожалуйста?
Я думаю, ты хочешь
ON orders.users_name=CONCAT(users.firstname ,' ',users.lastname)
Ваша версия
ON orders.users_name=users.firstname + ' ' + users.lastname
вероятно, будет делать некоторые преобразования внутри, пытаясь сложить вещи, + Concats вещи в SQL Server, а не MySQL
Других решений пока нет …