从sql中返回的查询值的子查询?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从sql中返回的查询值的子查询?相关的知识,希望对你有一定的参考价值。
我有三张桌子 - 销售,销售详情,药品。从销售表中,我将收集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为空。查询plz有什么问题?
答案
您可以使用内部联接来避免子查询
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驱动程序的绑定参数
以上是关于从sql中返回的查询值的子查询?的主要内容,如果未能解决你的问题,请参考以下文章