我运行了以下查询:
SELECT
orderdetails.sku,
orderdetails.mf_item_number,
orderdetails.qty,
orderdetails.price,
supplier.supplierid,
supplier.suppliername,
supplier.dropshipfees,
cost = (SELECT supplier_item.price
FROM supplier_item,
orderdetails,
supplier
WHERE supplier_item.sku = orderdetails.sku
AND supplier_item.supplierid = supplier.supplierid)
FROM orderdetails,
supplier,
group_master
WHERE invoiceid = '339740'
AND orderdetails.mfr_id = supplier.supplierid
AND group_master.sku = orderdetails.sku
我得到了以下错误:
Msg 512, Level 16, State 1, Line 2 子查询返回多个值。 当子查询跟随=,!=,<,< =,>,> =时不允许这种情况,或者当子查询用作表达式时。
有什么想法?
WHERE
子句,以确保连接被正确实现。如果隐含条件分散在子句中,那么它会变得更加困难并且降低可读性。与所有编程语言一样,语义使用是使您的SQL更易读的关键 - 所有连接都应正确定义为FROM
子句的子部分 - 这样,您就知道数据来自哪里,更重要的是,为什么。 - user1945782