From: | Michiel Lange <michiel(at)minas(dot)demon(dot)nl> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | I feel a bit dumb, but getting a bit clueless |
Date: | 2003-11-07 12:29:42 |
Message-ID: | 3FAB9036.6000900@minas.demon.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
I am certainly not awake, that I have troubles with a simple thing like
this, but there it is....
I have three tables: Names(NameID INT4 PRIM INDEX, Name VARCHAR(30)),
Groups(GroupID INT4 PRIM INDEX, Group VARCHAR(30))
And a table Members(NameID,GroupID) PRIM INDEX ON (NameID, GroupID)
Now I put some data in all three tables, first created some Names (a
grand total of 4) and a few groups (a grand total of 6)
And Members like this (NameID, GroupID)
1, 1
1, 2
1, 3
2, 1
2, 4
2, 5
3, 2
3, 6
4, 1
Now I want to show essentially the Members table, but the numbers should
be replaced by the Names that go with the ID.
When I try this query:
SELECT "Name", "Group" FROM "Names", "Groups" RIGT JOIN "Members" ON
'Names.NameID' = 'Members.NameID' AND 'Groups.GroupID' = 'Members.GroupID';
I get 24 results (6 times 4 = 24) so, it shows like all names are member
of all groups... That's not true...
If I change from a LEFT JOIN to a RIGHT JOIN, it gets even stranger: I
get 36 (4 * 9) results... but the name for Group is left empty.
So somewhere I make a huge thinking mistake... but getting a bit
clueless where I am going wrong...
Can someone help me out? It gets frustrating... :(
- feeling a bit silly too, this is basics... -
Michiel
From | Date | Subject | |
---|---|---|---|
Next Message | Christian Brosig | 2003-11-07 12:49:51 | Out of buffer error |
Previous Message | Dani Oderbolz | 2003-11-07 11:57:47 | pg_atoi: zero-length string |