On Mar 9, 8:43 am, "Steve London" <sylon... (AT) optonline (DOT) net> wrote:
Quote:
I'm sure this has been brought up many times, but I will ask anyway.
Let's say I have 2 tables related:
Owner:
---------
o_id
o_name
Dog:
---------
d_id
d_name
o_id - for Owner table.
If the data is laid out as
o_id o_name
1 John
d_id d_name o_id
1 Skippy 1
2 Fido 1
How can I make a query that will produce the following results:
o_id o_name owned dog names
1 John Skippy, Fido
I think it has something to do with unions but I can't seem to get it. I'm
using SQL Server Compact Edition. |
CREATE TABLE Owners -- plural if you have more than one
(owner_id int NOT NULL PRIMARY KEY,
owner_name varCHAR(20) NOT NULL);
CREATE TABLE Dogs -- plural if you have more than one
(dog_id int NOT NULL PRIMARY KEY,
dog_name varCHAR(20) NOT NULL,
dog_owner_id int
);
insert into Owners (owner_id,owner_name) values(1,'John')
insert into Dogs (dog_id,dog_name,dog_owner_id) values(1,'Skippy',1)
insert into Dogs (dog_id,dog_name,dog_owner_id) values(2,'Fiddo',1)
declare @s varchar(100) select @s = coalesce(@s +', ','') + d.dog_name
from dogs d inner join owners o on d.dog_owner_id = o.owner_id where
o.owner_id = 1; select owner_id, owner_name, @s from owners where
owner_id = 1