在SQL中连接具有相同id的两行SELECT

时间:2014-04-15 10:24:51

标签: mysql sql

好的,我确实有这张桌子

| id | first | last | type
  1     mp      de    bill
  1     mark    ve    ship
  2     dw      her   bill
  2     dwi     rra   ship

现在我希望它像这样

| id | bill.first |  bill.last | ship.first | ship.last
   1     mp             de           mark       ve
   2     dw             her          dwi        rra

加入行的主键是通过它们的ID这可能吗?

我已尝试使用group by但我不知道如何使用它

我不知道谷歌用什么词来搜索我的问题的解决方案

我只有一张表

4 个答案:

答案 0 :(得分:1)

这样的事情应该有效 -

select 
    t1.first,
    t1.last,
    t2.first,
    t2.last,
    t1.type
    from 
    test t1
    inner join test t2
    on t1.id = t2.id
    and t1.type = 'bill'
    and t1.type != t2.type

实际上,您只需要在同一个表上执行内部联接

答案 1 :(得分:0)

尝试类似

的内容
select bill.id, bill.first, bill.last, ship.first, ship.last
from t as bill, t as ship 
where bill.id = ship.id
and bill.type = 'bill' 
and ship.type = 'ship'

或者你可以使用Join更加现代化。

答案 2 :(得分:0)

SELECT b.id, b.first, b.last, s.first, s.last 
FROM bill b
LEFT JOIN ship s ON b.id=s.id AND b.type='bill' AND s.type='ship'

答案 3 :(得分:0)

试试这个:

SELECT A.id,A.first, A.last,
       B.first, B.last
FROM   T2 A
INNER JOIN T2 B
ON A.id = B.id
AND A.type = 'bill'
AND B.type = 'ship'