
That was necessary for the first query to work, but now picking the top 1 from that list will give you the highest salary not the the 10th highest salary. However, those salaries will be listed in descending order. SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESCįirst, the SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESC query will select the top 10 salaried employees in the table.


This can be done as follows: SELECT TOP (1) Salary FROM Note that a CROSS JOIN can either be specified using the CROSS JOIN syntax (“explicit join notation”) or (b) listing the tables in the FROM clause separated by commas without using a WHERE clause to supply join criteria (“implicit join notation”).
#MYSQL JOIN ON MULTIPLE COLUMNS FULL#
Conceptually, a FULL JOIN combines the effect of applying both a LEFT JOIN and a RIGHT JOIN i.e., its result set is equivalent to performing a UNION of the results of left and right outer queries.ĬROSS JOIN: Returns all records where each row from the first table is combined with each row from the second table (i.e., returns the Cartesian product of the sets of rows from the joined tables). This means that if the ON clause doesn’t match any records in the left table, the JOIN will still return a row in the result for that record in the right table, but with NULL in each column from the left table.įULL JOIN (or FULL OUTER JOIN): Returns all rows for which there is a match in EITHER of the tables. This is the exact opposite of a LEFT JOIN i.e., the results will contain all records from the right table, even if the JOIN condition doesn’t find any matching records in the left table.

RIGHT JOIN (or RIGHT OUTER JOIN): Returns all rows from the right table, and the matched rows from the left table. This means that if the ON clause doesn’t match any records in the right table, the JOIN will still return a row in the result for that record in the left table, but with NULL in each column from the right table. LEFT JOIN (or LEFT OUTER JOIN): Returns all rows from the left table, and the matched rows from the right table i.e., the results will contain all records from the left table, even if the JOIN condition doesn’t find any matching records in the right table. This is the default type of join if no specific JOIN type is specified. “simple join”): Returns all rows for which there is at least one match in BOTH tables. Note I think I fixed a typo in your first dataset of the UNION clause by changing A.restaurant to A.location.ANSI-standard SQL specifies five types of JOIN clauses as follows: SELECT 0 AS budget, SUM(A.sales) AS sales, A.location Then to get the final results you want, you'll want to do one more grouping again on location in a subquery or CTE to aggregate the different sides of the UNION into a single row like so: SELECT location, SUM(sales) AS sales, SUM(budget) AS budget RIGHT OUTER JOIN B ON A.date = B.date AND A.restaurant = B.restaurant SELECT SUM(B.budget) AS budget, 0 AS sales, B.restaurant

LEFT OUTER JOIN B ON A.date = B.date AND A.location= B.location Since you don't want the sales and budget data points to be in the same column, you can just un-align them and add placeholder default values in the other dataset like so: SELECT 0 AS budget, SUM(A.sales) AS sales, A.restaurant In a UNION clause the alignment of the columns in each unioned dataset defines the order of those columns in the final result set.
