• Full join means include all rows from both tables. Cross join means include all combinations of rows from both tables.

    A full join has a key relationship between the tables. For example:

    select *

    from dbo.Customers

    full outer join dbo.Orders

    on Customers.CustomerID = Orders.CustomerID

    This will return all customers, regardless of whether they have any records in the Orders table, and all orders, regardless of whether they have a customer ID in them. There is a relationship between the tables based on the customer ID.

    A cross join, on the other hand, gives you all possible combinations of the rows, without regard to a relationship between the tables.

    Thus, a cross join between cities and groups give you all cities and all groups in all possible combinations.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon