Skip to main content

SQL Joins

The JOIN keyword is used in an SQL statement to query data from two or more tables, based on a relationship between certain columns in these tables.

Tables in a database are often related to each other with keys.

A primary key is a column (or a combination of columns) with a unique value for each row. Each primary key value must be unique within the table. The purpose is to bind data together, across tables, without repeating all of the data in every table


FULL OUTER JOIN

A JOIN is made matching a column on a table to a column on the other table. After a FULL OUTER JOIN, for a given value (red), for a given row with this value on one table ([ red | 9999 ]), one row is created for each row that matches on the other table ([ red | OOOOOO ] and [ red | LLLLLL ]). If a value exists in only one table, then a row is created and is completed with NULL columns.
FROM table_1 FULL OUTER JOIN table_2 ON
 table_1.common_value = table_2.common_value


common_valuespecific_value_1specific_value_2
red9999OOOOOO
red9999LLLLLL
grey6666NULL
white0000NULL
purple7777NULL
purple2222NULL
black8888FFFFFF
greenNULLHHHHHH
yellowNULLPPPPPP
blueNULLRRRRRR


RIGHT OUTER JOIN 

The RIGHT OUTER JOIN is like the FULL OUTER JOIN but it doesn't create row for values that don't exist on the left table.
FROM table_1 RIGHT OUTER JOIN table_2 ON
 table_1.common_value = table_2.common_value


common_valuespecific_value_1specific_value_2
red9999OOOOOO
red9999LLLLLL
black8888FFFFFF
greenNULLHHHHHH
yellowNULLPPPPPP
blueNULLRRRRRR

LEFT OUTER JOIN 

The LEFT OUTER JOIN is like the FULL OUTER JOIN but it doesn't create row for values that don't exist on the right table.
FROM table_1 LEFT OUTER JOIN table_2 ON
 table_1.common_value = table_2.common_value
common_valuespecific_value_1specific_value_2
red9999OOOOOO
red9999LLLLLL
grey6666NULL
white0000NULL
purple7777NULL
purple2222NULL
black8888FFFFFF

INNER JOIN 

The INNER JOIN is like the FULL OUTER JOIN but it creates row only for values that exist on both the left table and the right table.
FROM table_1 INNER JOIN table_2 ON
 table_1.common_value = table_2.common_value
common_valuespecific_value_1specific_value_2
red9999OOOOOO
red9999LLLLLL
black8888FFFFFF


Originally posted in May 2013

Comments

Popular posts from this blog

Send a Fax in windows using faxcomexlib and TAPI in VB code .Net

An application that provides sending fax from faxmodem, connected to the computer, will be explained in the following post.  We can use Telephony Application Programming Interface (TAPI) and the Fax Service Extended Component Object Model (COM) API to send fax. The fax service is a Telephony Application Programming Interface (TAPI)-compliant system service that allows users on a network to send and receive faxes from their desktop applications. The service is available on computers that are running Windows 2000 and later. The fax service provides the following features: Transmitting faxes Receiving faxes Flexible routing of inbound faxes Outbound routing Outgoing fax priorities Archiving sent and received faxes Server and device configuration management Client use of server devices for sending and receiving faxes Event logging Activity logging Delivery receipts Security permissions The following Microsoft Visual Basic code example sends a fax. Note that...

Convert your datatable into generic poco object in c# using linq, ado and reflections.

Follow @harshit_parshii The most common problem that we face these days is to create a common class and method that can be used across all the projects and codes. So today I will be sharing my code where you can see how to make and create a generic function without using entity framework for ado. net. The scenario is like you have an old software that uses stored procedure to return set of entities as a data-table, you do not want to re-write the back-end code as you are creating a web API in c# which needs to be delivered asap. You need to map these data tables to models as you might be using MV* pattern. So here we will be doing one to one mapping of model to data- table, and in similar fashion insert or update can also be done. So basically we are converting a data-table to list of strongly typed object model to do CRUD operations. So we have following things before hand. A helper class is referenced as the database(dbFactory) which executes ado. ne...

Decoding underscore js SortBy - Sorting in javascript

Sorting can be the developers worst nightmare especially if it is done in more then one field. So what can help, recently doing research on it I came across underscore js sortBy (underscorejs.org/#sortBy) function which will help you to sort the array very effectively. So I was going through the documentation and found it very useful, but there are one drawback of it. Will let you know that: How to order in Ascending Order _.sortBy([6, 2, 4, 5, 3, 1], function(num){ return num }); [ 1 , 2 , 3 , 4 , 5 , 6 ] How to order in Descending Order _.sortBy([6, 2, 4, 5, 3, 1], function(num){ return -num }); [ 6 , 5 , 4 , 3 , 2 , 1 ] The underscore sort by will also work with string literals Ascending _.sortBy(['6','2', '4', '5', '3', '1'], function(num){ return num }); [ " 1 " , " 2 " , " 3 " , " 4 " , " 5 " , " 6 " ] Descending _.sortBy(['6','2'...