我的数据库中有两个表,其中一个是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'";
我不明白为什么这不起作用。有人可以给我一些方向吗?
答案 0 :(得分:4)
我猜你想要
ON orders.users_name=CONCAT(users.firstname ,' ',users.lastname)
您的版本
ON orders.users_name=users.firstname + ' ' + users.lastname
可能会做一些尝试添加内容的转换,+在sql server中连接,而不是mysql