|
Home >> FAQs/Tutorials >> MySQL Tutorials >> Index
MySQL FAQs - SQL SELECT Statements with JOIN and Subqueries
By: FYIcenter.com
Part:
1
2
3
4
5
(Continued from previous part...)
How To Define and Use Table Alias Names?
When column names need to be prefixed with table names, you can define
table alias name and use them to prefix column names as shown in the
following select statement:
mysql> SELECT l.id, l.url, r.comment FROM fyi_links l
INNER JOIN fyi_rates r ON l.id = r.id;
+-----+-------------------+-----------+
| id | url | comment |
+-----+-------------------+-----------+
| 101 | dev.fyicenter.com | The best |
| 102 | dba.fyicenter.com | Well done |
| 103 | sqa.fyicenter.com | Thumbs up |
+-----+-------------------+-----------+
3 rows in set (0.00 sec)
How To Write a Query with a Left Outer Join?
If you want to query from two tables with a left outer join, you can use the
LEFT OUTER JOIN ... ON clause in the FROM clause. The following query returns output
with a left outer join from two tables: fyi_links and fyi_rates. The join condition
is that the id in the fyi_links table equals to the id in the fyi_rates table:
mysql> SELECT l.id, l.url, r.comment FROM fyi_links l
LEFT OUTER JOIN fyi_rates r ON l.id = r.id;
+-----+-------------------+-----------+
| id | url | comment |
+-----+-------------------+-----------+
| 101 | dev.fyicenter.com | The best |
| 102 | dba.fyicenter.com | Well done |
| 103 | sqa.fyicenter.com | Thumbs up |
| 104 | www.mysql.com | NULL |
| 105 | www.oracle.com | NULL |
| 106 | www.php.net | NULL |
| 107 | www.winrunner.com | NULL |
+-----+-------------------+-----------+
7 rows in set (0.43 sec)
Note that a left outer join may return extra rows from the first (left) table
that do not satisfy the join condition. In those extra rows, columns from the
second (right) table will be given null values.
The extra rows returned from the left outer join in this example represents
links that have no rates.
How To Write a Query with a Right Outer Join?
If you want to query from two tables with a right outer join, you can use the
RIGHT OUTER JOIN ... ON clause in the FROM clause. The following query returns output
with a right outer join from two tables: fyi_links and fyi_rates. The join condition
is that the id in the fyi_links table equals to the id in the fyi_rates table:
mysql> SELECT l.id, l.url, r.comment FROM fyi_links l
RIGHT OUTER JOIN fyi_rates r ON l.id = r.id;
+------+-------------------+-----------+
| id | url | comment |
+------+-------------------+-----------+
| 101 | dev.fyicenter.com | The best |
| 102 | dba.fyicenter.com | Well done |
| 103 | sqa.fyicenter.com | Thumbs up |
| NULL | NULL | Number 1 |
| NULL | NULL | Not bad |
| NULL | NULL | Good job |
| NULL | NULL | Nice tool |
+------+-------------------+-----------+
7 rows in set (0.00 sec)
Note that a right outer join may return extra rows from the second (right) table
that do not satisfy the join condition. In those extra rows, columns from the
first (left) table will be given null values.
The extra rows returned from the right outer join in this example represents rates
that have no links.
How To Write a Query with a Full Outer Join?
There is no way to do full outer join in MySQL. It does not support this feature
at the current MySQL release.
(Continued on next part...)
Part:
1
2
3
4
5
|