James Cheney, Sam Lindley, Philip Wadler. Draft paper, 1 December 2012, revised 29 March 2013. Language-integrated query is receiving renewed attention, in part because of its support through Microsoft's LINQ framework. We present a simple theory of language-integrated query based on quotation and normalisation of quoted terms. Our technique supports abstraction over queries, dynamic generation of queries, and queries with nested intermediate data. Higher-order features prove useful even for dynamic generation of first-order queries. We prove that normalisation always succeeds in translating any query of flat relation type to SQL. We present experimental results confirming our technique works, even in situations where Microsoft's LINQ framework either fails to produce an SQL query or, in one case, produces an avalanche of SQL queries.