Learn SQL


Let’s say we want to print id cards for all the students and the books. Each id card for a student will just have his id, and each id card for a book will just contain its id. Now, say we have to print all the ids in a single result, under a single column.

This looks like a perfect use case for UNION query. Go ahead and run the query below.

Notice that we have 34 records in the results. But we expect a total of ids of 25 students and 34 books. The ids for students range from 1 to 25, and for books, range from 1 to 34. The results of the above query are just 1 to 34. This goes on to explain that if there are records exactly matching from multiple queries in a UNION, only one of them will be included in the final results. That’s another way of saying that the results of a UNION are always unique.

Then how do we solve our problem? We need all 25 student ids and all 34 book ids. In such cases, there is an extension to UNION, called UNION ALL. Run the query below:

Notice that by using UNION ALL, we get all (25 + 34) results, as expected.