Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在3个表之间快速查询mysql_Mysql - Fatal编程技术网

在3个表之间快速查询mysql

在3个表之间快速查询mysql,mysql,Mysql,帮我,伙计们,如何让我的查询更快 SELECT b.id_barang , b.nama , ( SELECT SUM(qty) FROM baru_kasir WHERE k.id_barang = b.id_barang GROUP BY b.id_barang LIMIT 1) - ( SELECT SUM(qty) FROM barang_gdg_pesan WHERE barang_gdg_pesan.id_barang = b.id_barang GR

帮我,伙计们,如何让我的查询更快

SELECT b.id_barang
     , b.nama
     , ( SELECT SUM(qty) FROM baru_kasir WHERE k.id_barang = b.id_barang GROUP BY b.id_barang LIMIT 1) 
     - ( SELECT SUM(qty) FROM barang_gdg_pesan WHERE barang_gdg_pesan.id_barang = b.id_barang GROUP BY b.id_barang LIMIT 1 ) AS STOCK

  FROM baru_barang b 
 WHERE stts = 'AKTIF' 
 ORDER 
    BY b.nama ASC;

几乎可以肯定的是,将
联接到
SUM
s的表中比为每行运行两个子查询更有效:

SELECT bb.id_barang,
       bb.nama, 
       bk.qty - bgp.qty AS stock
FROM baru_barang bb
JOIN (SELECT id_barang, SUM(qty) AS qty
      FROM baru_kasir 
      GROUP BY id_barang) bk ON bk.id_barang= bb.id_barang
JOIN (SELECT id_barang, SUM(qty) AS qty
      FROM barang_gdg_pesan
      GROUP BY id_barang) bgp ON bgp.id_barang = bb.id_barang 
WHERE stts='AKTIF'
ORDER BY bb.nama ASC;

确保每个表中的
id\u barang
列上都有索引也将有助于提高性能。

向我们展示一些示例表数据和表结构-全部为格式化文本。谢谢,,但此获取错误代码:1054“on子句”中的未知列“bk.id_barang”执行时间:00:00:00:000传输时间:00:00:00:000总时间:00:00:00:00:000@CeceSyamsulHadi很抱歉,我无法测试查询,因为我没有任何示例数据。我做了一个更正,应该能解决那个问题。