-2

Table_One:

+---------+----------+
|  USER_ID|   name   |
+---------+----------+
|    2    |   Rick   |
+---------+----------+

Table_Two

+---------+----------+----------+
|  t2_ID  |  sport   |  USER_ID |
+---------+----------+----------+
|    32   | football |     2    |
+---------+----------+----------+
|    33   | baseball |     2    |
+---------+----------+----------+

The result I am hoping for is the following:

+---------+----------+--------------------+
|    2    |  Rick    | Football, Baseball |
+---------+----------+--------------------+

I don't understand how to combined multiple rows from an INNER JOIN into one column like this.

SELECT Table_One.* FROM Table_One LEFT JOIN Table_Two ON Table_Two.USER_ID = Table_One.USER_ID

I am getting results as separate rows:

+---------+----------+----------+
|    2    |  Rick    | football |
+---------+----------+----------+
|    2    |  Rick    | baseball |
+---------+----------+----------+

Thank you everyone who read this.

Tab Alleman
  • 31,483
  • 7
  • 36
  • 52
RON2015
  • 443
  • 3
  • 16

1 Answers1

2

THIS ANSWERS THE QUESTION BASED ON TAG BEFORE ANY COMMENT/EDIT MADE.

You can use FOR XML PATH() clause :

SELECT to.*,
       STUFF( (SELECT DISTINCT ', ' +tt.sport   
               FROM Table_Two tt
               WHERE tt.USER_ID = to.USER_ID
               FOR XML PATH('')
              ), 1, 1, ''
           ) AS Sports
FROM Table_One to;
Yogesh Sharma
  • 49,870
  • 5
  • 26
  • 52