Jump to content

Hash join: Difference between revisions

Added SQL implementation
m (→‎{{header|TXR}}: Whitespace.)
(Added SQL implementation)
Line 834:
</pre>
 
=={{header|SQL}}==
Setting up the data is a bit verbose:
<lang sql>create table people (age decimal(3), name varchar(16));
insert into people (age, name) values (27, 'Jonah');
insert into people (age, name) values (18, 'Alan');
insert into people (age, name) values (28, 'Glory');
insert into people (age, name) values (18, 'Popeye');
insert into people (age, name) values (28, 'Alan');
 
create table nemesises (name varchar(16), nemesis varchar(16));
insert into nemesises (name, nemesis) values ('Jonah', 'Whales');
insert into nemesises (name, nemesis) values ('Jonah', 'Spiders');
insert into nemesises (name, nemesis) values ('Alan', 'Ghosts');
insert into nemesises (name, nemesis) values ('Alan', 'Zombies');
insert into nemesises (name, nemesis) values ('Glory', 'Buffy');</lang>
 
Doing the join is concise. But we don't actually have control over how the join is implemented...
<lang sql>select distinct
p.name,
n.nemesis
from
people p
join nemesises n on p.name=n.name
order by
p.name</lang>
 
{{out}}
<pre>NAME NEMESIS
---------------- ----------------
Alan Ghosts
Alan Zombies
Glory Buffy
Jonah Spiders
Jonah Whales</pre>
=={{header|Tcl}}==
Tcl uses hash tables to implement both its associative arrays and its dictionaries.
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.