Native Relational Operations (Cont.)
Selection (Cont.)
Query:
Retrieve all pairs of agents, both with a percentage commission of at least 6%, and both stationed in the same city.
|
|
agent |
aid |
aname |
city |
percent |
a01 |
Smith |
New York |
6 |
a02 |
Jones |
Newark |
6 |
a03 |
Brown |
Tokyo |
7 |
a04 |
Gray |
New York |
6 |
a05 |
Otasi |
Duluth |
5 |
a06 |
Smith |
Dallas |
5 |
|
|
L/M |
aid |
aname |
city |
percent |
a01 |
Smith |
New York |
6 |
a02 |
Jones |
Newark |
6 |
a03 |
Brown |
Tokyo |
7 |
a04 |
Gray |
New York |
6 |
|
L := AGENT where percent >= 6
M := AGENT where percent >= 6
(Wrong!👎) PAIRS := ( L×M ) where L.city=M.city
PAIRS |
L.aid |
L.aname |
L.city |
L.percent |
M.aid |
M.aname |
M.city |
M.percent |
a01 |
Smith |
New York |
6 |
a01 |
Smith |
New York |
6 |
a01 |
Smith |
New York |
6 |
a04 |
Gray |
New York |
6 |
a02 |
Jones |
Newark |
6 |
a02 |
Jones |
Newark |
6 |
a03 |
Brown |
Tokyo |
7 |
a03 |
Brown |
Tokyo |
7 |
a04 |
Gray |
New York |
6 |
a01 |
Smith |
New York |
6 |
a04 |
Gray |
New York |
6 |
a04 |
Gray |
New York |
6 |
(Good!👍) PAIRS2 := ( L×M ) where L.city=M.city and L.aid<M.aid
PAIRS2 |
L.aid |
L.aname |
L.city |
L.percent |
M.aid |
M.aname |
M.city |
M.percent |
a01 |
Smith |
New York |
6 |
a04 |
Gray |
New York |
6 |
(Wrong!👎) PAIRS3 := ( L×M ) where L.city='New York'
and M.city='New York' and L.aid<M.aid
PAIRS3 |
L.aid |
L.aname |
L.city |
L.percent |
M.aid |
M.aname |
M.city |
M.percent |
a01 |
Smith |
New York |
6 |
a04 |
Gray |
New York |
6 |
Though
PAIRS2
and
PAIRS3
gave the same result, the
PAIRS3
query is known as a
content-dependency error.