2013-07-03 67 views
0

我试着去修剪下来此查询。所以我会稍微简化它。下面是数据我想:需要帮助连接两个查询,并避免重复

| person.id | badge.bid | person.first_name | person.last_name | person.type | person_user.description |

每场除了person_user.description独特。每条记录最多可以有40个不同的person_user.description字段。问题是,我得到重复,因为记录有多个描述条目。你能帮我把这些附加的副本放在同一个记录行上吗?

| person.id | badge.bid | person.first_name | person.last_name | person.type | 1 | 2 | 3 | 4 | 5 |等等。| 40 |

下面是该查询:

SELECT person.id, 
     badge.bid, 
     person.first_name, 
     person.last_name, 
     person.type, 
     person_user.description 
FROM person, 
     badge, 
     person_user 
WHERE person.id = badge.id 
     AND person.id = person_user.person_id 
     AND badge.bid NOT LIKE "111%" 
     AND badge.access_date >= 20130401 
GROUP BY person.id, 
      badge.bid, 
      person.first_name, 
      person.last_name, 
      person.type, 
      person_user.description 
ORDER BY person.id 
+2

显示你的表结构和一些数据 – chetan

+0

编辑原来的问题。 –

回答

0

您可以创建一个标量表,使用INSERT INTO SELECT和UNION填充它,然后做选择标表DISTINCT。

例如:

DECLARE @temptable table (col1 int, col2 int, etc...) 

INSERT INTO @temptable 

SELECT col1, col2 
FROM table1 
WHERE condition=TRUE 

UNION 

SELECT col1, col2 
FROM table2 
WHERE condition=TRUE 

SELECT DISTINCT col1, col2 
FROM @temptable 
0

如果重复是你唯一的问题速战速决是只通过ID组。