select data from more then 1 table
There are 2 main techniques to do this.
- INNER JOIN, which is not support by all databases
- The second method
- OTHER JOIN
Here you can combine 2 tables if a there is a common field with the same values.
... FROM table1 INNER JOIN table2 ON table1.field1 operator table2.field2
| Part |
Explanation |
| Table1, table2 |
Names of the tables where the data comes from. |
| field1, field2 |
The names of the common fields. If they don't have numeric values, the data-type must be the same, there name doesn't have to be the same. If the names are the same you'll need to specify: table.field |
| operator |
<, >, <=, >=, =,<> |
SELECT field1, field2 FROM table1 INNER JOIN table2 ON table1.field1 = table2.field2
It is possible to link on more then 1 field:
SELECT field FROM table1 INNER JOIN table2
ON table1.field1 operator table2.field1 AND
ON table1.field2 operator table2.field2 OR
ON table1.field3 operator table2.field3
And you can also link more then 1 table.
SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN table3
ON table2.field2 operator table3.field3)
ON table1.field1 operator table2.field2
SELECT fields FROM table1, table2 WHERE table1.field1=table2.field2
| Part |
Explanation |
| Table1, table2 |
Names of the tables where the data comes from. |
| field1, field2 |
The names of the common fields. If they don't have numeric values, the data-type must be the same, there name doesn't have to be the same. If the names are the same you'll need to specify: table.field |
If you want to link more then 2 tables:
SELECT fields
FROM table1, table2, ..tableN
WHERE table1.field1=table2.field2 and
table2.field2=.. and
table.. .field..= tableN.fieldN
... FROM table1 [LEFT | RIGHT] JOIN table2 ON table1.field1 operator table2.field2
| Part |
Explanation |
| table1, table2 |
The names of the tables of which the records should be combined |
| field1, field2 |
The names of the fields that should be combined. The field must have the same data-type and the same kind of data. They don't need to have the same name. |
| operator |
<, >, <=, >=, =,<> |
With LEFT JOIN all the records from the first(left-)table are added, even if there is no common value in the second(right-)table.
With RIGHT JOIN all the records from the second(right-)table are added, even if there is no common value in the first(left-)table.
For example, You have a table departments(left-table) and a table employees(right-table).
If you want to select all the departments, even those without employees, you use LEFT JOIN.
If you want to select all the employees, even those without a department, you use RIGHT JOIN.
You can nest(insert) LEFT- or RIGHT JOIN inside INNER JOIN, but you can not nest INNER JOIN in LEFT- or RIGHT JOIN.
TOP