我正在使用Chinook测试数据库来比较Sqlite3和MySQL5查询结果。
有人能告诉我为什么以下查询在这两个数据库中给出不同的结果,以及MySQL为什么要创建一个新的InvoiceId?
SELECT * FROM invoice WHERE InvoiceDate > (SELECT AVG(InvoiceDate) FROM invoice) LIMIT 3
答案 0 :(得分:2)
结果的顺序未指定;因此,它们中的“前三个”也没有具体说明。
只是因为当你没有使用子选择时,你在两个引擎上获得相同的顺序,这并不意味着它们总是一样。
答案 1 :(得分:0)
试试这个:
SELECT * FROM invoice WHERE InvoiceDate> (SELECT AVG(InvoiceDate)FROM invoice)ORDER BY InvoiceId ASC LIMIT 3
MySQL没有创建新的发票ID,它只是没有订购结果集。