Samuel R. Neff wrote:
I would expect "SELECT T.*" to always return all fields from table T.
However this seems not to be the case when using natural join.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>sqlite3
SQLite version 3.4.2
Enter ".help" for instructions
sqlite> create table a(aid integer);
sqlite> create table b(bid integer, aid integer);
sqlite> insert into a values (1);
sqlite> insert into b values (2, 1);
sqlite> select * from a natural join b;
aid bid
-- --
1 2
sqlite> select b.* from a natural join b;
bid
--
2
sqlite>
I realize that in the natural join the field "aid" from the first "select *"
query is not considered to belong to either table a or table b, but still in
the second query, shouldn't "select b.*" include all fields from table b?
Sam,
You have stated the answer yourself. The result of the natural join does
not contain the columns from either table when there is a column with
the same name in both tables. If you imagine the natural join columns
coming from a pseudo table named j then the result has columns j.aid and
b.bid. When you select b.* from this result there is only one column
from table b, the one sqlite returns.
HTH
Dennis Cote
-
To unsubscribe, send email to [EMAIL PROTECTED]
-