A表(主表)
UserID NAME
001 小白
002 小明
B表
UserID XM XJE
001 衣 100
001 帽 50
001 靴 180
002 衣 200
002 靴 300
C表
UserID HJ HJE
001 小车 200
001 飞机 500
002 小车 200
002 飞机 500
002 飞机 400
最后我想要的结果是:
UserID NAME XM XJE HJ HJE
001 小白 衣 100 小车 200
001 小白 帽 100 飞机 500
001 小白 靴 100 NULL NULL
002 小明 衣 200 小车 200
002 小明 靴 300 飞机 500
002 小明 NULL NULL飞机 400
请问SQL 怎么写?
UserID NAME
001 小白
002 小明
B表
UserID XM XJE
001 衣 100
001 帽 50
001 靴 180
002 衣 200
002 靴 300
C表
UserID HJ HJE
001 小车 200
001 飞机 500
002 小车 200
002 飞机 500
002 飞机 400
最后我想要的结果是:
UserID NAME XM XJE HJ HJE
001 小白 衣 100 小车 200
001 小白 帽 100 飞机 500
001 小白 靴 100 NULL NULL
002 小明 衣 200 小车 200
002 小明 靴 300 飞机 500
002 小明 NULL NULL飞机 400
请问SQL 怎么写?
left join c on a.userid=c.userid
001 小白 衣 100 小车 200
001 小白 衣 100 飞机 500
001 小白 帽 50 小车 200
001 小白 帽 50 飞机 500
001 小白 靴 100 小车 200
001 小白 靴 100 飞机 500
002 小明 衣 200 小车 200
002 小明 衣 200 飞机 500
002 小明 衣 200 飞机 400
002 小明 靴 300 小车 200
002 小明 靴 300 飞机 500
002 小明 靴 300 飞机 400
照楼上的写法,只能得到上面的结果呀
UserID NAME
001 小白
002 小明
B表
UserID sort XM XJE
001 1 衣 100
001 2 帽 50
001 3 靴 180
002 1 衣 200
002 2 靴 300
C表
UserID sort HJ HJE
001 1 小车 200
001 2 飞机 500
002 1 小车 200
002 2 飞机 500
002 3 飞机 400
sql語句: SELECT userid,name,xm,xje,hj,hje FROM A
FULL JOIN (SELECT b.userid buserid,xm,xje,c.userid cuserid,hj,hje FROM B
FULL JOIN C ON userid=userid AND b.sort=c.sort) AS T
ON (userid=buserid OR userid=cuserid)
就可以得到你想要的结果:
UserID NAME XM XJE HJ HJE
001 小白 衣 100 小车 200
001 小白 帽 100 飞机 500
001 小白 靴 100 NULL NULL
002 小明 衣 200 小车 200
002 小明 靴 300 飞机 500
002 小明 NULL NULL飞机 400