больше JOIN-ов, хороших и разных
Jan. 27th, 2006 02:04 pmВек живи, век учись.
Оказывается есть в стандарте SQL некий NATURAL JOIN, о котором я даже не слышал.
Вот здесь описания CROSS JOIN (простое декартово произведение таблиц) и NATURAL JOIN.
Вкратце, NATURAL JOIN - это аргумент в пользу названия полей таблиц с префиксами.
Например
Первичные и форейн ключи не описываю.
Так вот, теперь для выборки сотрудников компании 'Рога и копыта' достаточно
Оказывается есть в стандарте SQL некий NATURAL JOIN, о котором я даже не слышал.
Вот здесь описания CROSS JOIN (простое декартово произведение таблиц) и NATURAL JOIN.
Вкратце, NATURAL JOIN - это аргумент в пользу названия полей таблиц с префиксами.
Например
CREATE TABLE employee
(
emp_id INTEGER,
dep_id INTEGER,
emp_name VARCHAR(50)
);
CREATE TABLE department
(
dep_id INTEGER,
comp_id INTEGER,
dep_name VARCHAR(50)
);
CREATE TABLE company
(
comp_id INTEGER,
comp_name VARCHAR(50)
);
Первичные и форейн ключи не описываю.
Так вот, теперь для выборки сотрудников компании 'Рога и копыта' достаточно
SELECT
emp_id,
emp_name
FROM
company NATURAL JOIN
department NATURAL JOIN
employee
WHERE
comp_name = 'Рога и копыта'