在select查询中使用Select查询?

时间:2016-01-08 06:05:18

标签: php mysql sql

  

我正在尝试在from子句中的另一个select查询中使用select查询。这是一个mysql查询。

SELECT invoiceNo, SUM(weight), COUNT(barcode), sum_total
FROM (SELECT * FROM `selected_items` WHERE date LIKE '07-Jan-2016' ORDER BY id DESC)
WHERE date LIKE '07-Jan-2016' GROUP BY invoiceNo;
  

这就是我的数据库的样子。   enter image description here   我怎么能实现这样的东西,我有一个表,我通过id desc订购,并对此查询的结果使用另一个选择查询。上面的查询给我一个错误#1248 - 每个派生表必须有自己的别名。可以任何帮助我都是编程的新手。

4 个答案:

答案 0 :(得分:1)

我希望这会帮助你。

SELECT invoiceNo, SUM( weight ) , COUNT( barcode ) , sum_total
FROM (SELECT * FROM  `selected_items` 
WHERE DATE LIKE  '07-Jan-2016'
ORDER BY id DESC
)a
GROUP BY invoiceNo;

答案 1 :(得分:1)

我没理解你使用子查询的原因。您可以直接使用表'selected_items'并检查where子句中的条件。喜欢:

SELECT invoiceNo, SUM(weight), COUNT(barcode)
from 'selected_items'
WHERE date LIKE '07-Jan-2016' 
GROUP BY invoiceNo
Order By Id

答案 2 :(得分:0)

你不需要通过内部选择查询来做订单。在MySQL中,您需要为此示例中的派生表a提供别名。

SELECT invoiceNo, SUM(weight), COUNT(barcode), sum_total
FROM 
(
SELECT * FROM `selected_items` WHERE date LIKE '07-Jan-2016'
) a
WHERE date LIKE '07-Jan-2016' GROUP BY invoiceNo;

如果不查看数据,很难决定order by,但此查询适合您。

答案 3 :(得分:0)

你的查询几乎是正确的。然而,只有失踪。你必须使用ALIAS。

SELECT * FROM ( SELECT * FROM @table )AS tbl1 WHERE field1 ='test'