为什么SQLite和MySQL在subselect上没有给出相同的结果?

时间:2012-06-15 23:32:22

标签: mysql sql sqlite

我正在使用Chinook测试数据库来比较Sqlite3和MySQL5查询结果。

有人能告诉我为什么以下查询在这两个数据库中给出不同的结果,以及MySQL为什么要创建一个新的InvoiceId?

SELECT * FROM invoice WHERE InvoiceDate > (SELECT AVG(InvoiceDate) FROM invoice) LIMIT 3

enter image description here


附录:

enter image description here

2 个答案:

答案 0 :(得分:2)

结果的顺序未指定;因此,它们中的“前三个”也没有具体说明。

只是因为当你没有使用子选择时,你在两个引擎上获得相同的顺序,这并不意味着它们总是一样。

答案 1 :(得分:0)

试试这个:

  

SELECT * FROM invoice WHERE InvoiceDate> (SELECT AVG(InvoiceDate)FROM invoice)ORDER BY InvoiceId ASC LIMIT 3

MySQL没有创建新的发票ID,它只是没有订购结果集。