将具有重复行的表连接为属性

时间:2014-11-11 23:21:49

标签: mysql sql join

我有一个关于MySQL的问题,我有2个表:

Data

 ID ..  |  name ..  |   Job...|
 001    |  name1.   |   Job1  |
 002    |  name2.   |   Job2  |
 003    |  name3.   |   Job3  |

dataAttributes

 ID...  |   Number |
 001    |  value 1 .|
 001    |  value 2 .|
 002    |  value 3 .|
 003    |  value 4 .|
 003    |  value 5 .|

我想以这样的方式加入这些表:

 ID ..  |   name.. |   Job ..|Number 1     | Number 2..|
 001    |  name1   |   Job1  |value 1......| value 2 ..|
 002    |  name2   |   Job2  |value 3......|...........|
 003    |  name3   |   Job3  | value 4.... | value 5 ..|

你能帮我一下吗?

 =======Solved=======

我自己通过使用以下查询找到了解决方案

 select 
 D.*,
 (select DA.number from dataAttributes as DA where D.ID = DA.ID LIMIT 1,1) as number1,
 (select DA.number from dataAttributes as DA where D.ID = DA.ID LIMIT 2,1) as number2,
 (select DA.number from dataAttributes as DA where D.ID = DA.ID LIMIT X,1) as numberX
 from data as D 

2 个答案:

答案 0 :(得分:1)

试试这个

SELECT * FROM data
INNER JOIN dataAttributes ON data.ID = DataAttributes.ID;

答案 1 :(得分:0)

如果您只有两个号码,则可以使用min()max()

select d.*, min(da.Number) as Number1, max(da.Number) as Number2
from data d left join
     dataAttributes da
     on d.id = da.id
group by d.id;