332 lines
9 KiB
Text
332 lines
9 KiB
Text
================================================================================
|
|
cross join
|
|
================================================================================
|
|
SELECT name FROM products cross join items;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(from_item
|
|
(from_table
|
|
(identifier))))))))
|
|
|
|
================================================================================
|
|
join on
|
|
================================================================================
|
|
SELECT name FROM products join items on products.name = items.name;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(op_expression
|
|
(identifier)
|
|
(comparison_op)
|
|
(identifier))))))))
|
|
|
|
================================================================================
|
|
join using
|
|
================================================================================
|
|
select name from products join items using(foo);
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))))))
|
|
|
|
================================================================================
|
|
natural join
|
|
================================================================================
|
|
select name from products natural join items;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier))))))))
|
|
|
|
================================================================================
|
|
inner join
|
|
================================================================================
|
|
select name from products inner join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
left join
|
|
================================================================================
|
|
select name from products left join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
right join
|
|
================================================================================
|
|
select name from products right join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
full join
|
|
================================================================================
|
|
select name from products full join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
left outer join
|
|
================================================================================
|
|
select name from products left outer join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
right outer join
|
|
================================================================================
|
|
select name from products right outer join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
full outer join
|
|
================================================================================
|
|
select name from products full outer join items on true;
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(true)))))))
|
|
|
|
================================================================================
|
|
many joins
|
|
================================================================================
|
|
select name from products
|
|
natural join a
|
|
cross join a
|
|
join a on a.foo=b.foo
|
|
inner join a using(foo)
|
|
left join a using(foo)
|
|
left outer join a using(foo)
|
|
right join a using(foo)
|
|
right outer join a using(foo)
|
|
full outer join a using(foo)
|
|
full join a using(foo);
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(select_statement
|
|
(select_item
|
|
(identifier))
|
|
(select_from
|
|
(from_item
|
|
(from_table
|
|
(identifier))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier))))
|
|
(join_item
|
|
(from_item
|
|
(from_table
|
|
(identifier))))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(op_expression
|
|
(identifier)
|
|
(comparison_op)
|
|
(identifier))))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))
|
|
(join_item
|
|
(join_type)
|
|
(from_item
|
|
(from_table
|
|
(identifier)))
|
|
(join_condition
|
|
(identifier)))))))
|