MySQL查询加入两个具有不同列的表

时间:2018-03-11 06:40:13

标签: mysql

考虑下表T1

... FLOOR动物... COLOR

1 ... ...猫黑色

1 ...狗...黑色

1 ... ...猫白

2 ... ...狗白

2 ... ...狗布朗

3 ... ...牛布朗

3 ...狗...白

3 ... ...猫黑色

现在,我有查询:从T1中选择*,其中animal ='cat';得到了这个表T2

表T2

... FLOOR动物... COLOR

1 ... ...猫黑色

1 ... ...猫白

3 ... ...猫黑色

我想要的结果是:表T2中的所有元素和表T1中的(FLOOR,ANIMAL)。如下表T3所示:

表T3

... FLOOR动物... COLOR

1 ... ...猫黑色

1 ... ...猫白

3 ... ...猫黑色

1 ...狗

2 ...狗

2 ...狗

3 ...牛

3 ...狗

如何实现表T3?有什么建议? 提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用两个表的UNION,其中第二个TABLE的第三列应为空字符串:

从T1中选择*其中animal ='cat' 联盟 选择地板,动物,“”作为来自T1的颜色,其中动物<> '猫';

答案 1 :(得分:0)

您可以尝试使用case when ANIMAL = "cat" then COLOUR else '' end

像这样:

ID  UID                 MANY COLUMNS    CREATED AT
1   dqwdwnboofrzrqww1   ...             2018-02-11 23:00:43
2   dqwdwnboofrzrqww1   ...             2018-02-12 01:15:30

3   dqwdwnbsha5drutj5   ...             2018-02-11 23:00:44
4   dqwdwnbsha5drutj5   ...             2018-02-12 01:15:31

5   dqwdwnbvhfg601jk1   ...             2018-02-11 23:00:45
6   dqwdwnbvhfg601jk1   ...             2018-02-12 01:15:33

...