gpt4 book ai didi

mysql - sql中返回查询值的子查询?

转载 作者:行者123 更新时间:2023-11-29 10:22:07 25 4
gpt4 key购买 nike

我有三个表 - sales、sales_details、medicine。从销售表中,我将收集 sale_id,然后我将从 sales_details 中获取特定销售的详细信息。除此之外,在 sales_details 中,有一个用于药品 ID 的单元格(中间)。使用该 mid,我还想获取药物名称并在一次查询中返回所有数据。

这是我到目前为止所拥有的-

        SELECT `mid`, `qty`, `rate`, `total_price`, `discount`, `total_discount`, (SELECT `medicine`.`product_name` FROM `medicine` WHERE `sales_details`.`mid` = `medicine`.`product_id`) AS 'medicine_name'
FROM `sales_details`
WHERE `sale_id` IN (SELECT `sale_id` FROM `sales` WHERE `invoice_no` = '$invoiceID;

我得到了包括 mid 在内的所有数据,但每行中medicine_name 为空。请问查询有什么问题?

最佳答案

您可以避免使用内部联接的子查询

  SELECT s.`mid`
, s.`qty`
, s.`rate`
, s.`total_price`
, s.`discount`
, s.`total_discount`
, m.`product_name` medicine_name
FROM `sales_details` d
INNER JOIN `medicine` d.mid = m.product_id
INNER JOIN sales s on s.sale_id = d.sale_id AND $invoiceID

但不应在 sql 中使用 php var,否则您将面临 SQLinjection 的风险。为此,请查看您的 sql 驱动程序以绑定(bind)参数

关于mysql - sql中返回查询值的子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com