我正在尝试在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;
这就是我的数据库的样子。 我怎么能实现这样的东西,我有一个表,我通过id desc订购,并对此查询的结果使用另一个选择查询。上面的查询给我一个错误#1248 - 每个派生表必须有自己的别名。可以任何帮助我都是编程的新手。
答案 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'