Mysql 使用不同的

Mysql 使用不同的,mysql,Mysql,我有两张表,follow和following 跟随 +---------+----------------+ | user_id | follow_user_id | +---------+----------------+ | 1 | 2 | | 2 | 3 | | 3 | 4 | | 100 | 10 | +---------+----------

我有两张表,
follow
following

跟随

+---------+----------------+
| user_id | follow_user_id |
+---------+----------------+
|       1 |              2 |
|       2 |              3 |
|       3 |              4 |
|     100 |             10 |
+---------+----------------+
以下内容

+---------+-------------------+
| user_id | following_user_id |
+---------+-------------------+
|       1 |                 2 |
|       3 |                 4 |
|       4 |                 6 |
|     200 |               500 |
+---------+-------------------+
我想要两张没有重复的桌子

这是我想要的结果

+---------+----------------+-----------+
| user_id | target_user_id |  category |
+---------+----------------+-----------+
|       1 |              2 | follow    |
|       2 |              3 | follow    |
|       3 |              4 | follow    |
|       4 |              6 | following |
|     100 |             10 | follow    |
|     200 |            500 | following |
+---------+----------------+-----------+
条件1-删除重复的行

条件2-必须使用每个表的名称添加类别列

条件3-如果类别重复,它可以是
follow
follow
。没关系

条件4-
跟随用户id
作为
目标用户id
跟随用户id
作为
目标用户id

在这种情况下,我应该使用join吗?还是工会

任何建议,非常感谢


谢谢

只需使用
union
groupby
,SQL如下:

select 
    user_id,target_user_id,min(tag) as category
from 
(
    select user_id,follow_user_id as target_user_id, 'follow' as tag from follow
    union
    select user_id,following_user_id as target_user_id, 'following' as tag from following
) tmp 
group by 
    user_id,target_user_id 
order by 
    user_id,target_user_id;

+---------+----------------+-----------+
| user_id | target_user_id | category  |
+---------+----------------+-----------+
|       1 |              2 | follow    |
|       2 |              3 | follow    |
|       3 |              4 | follow    |
|       4 |              6 | following |
|     100 |             10 | follow    |
|     200 |            500 | following |
+---------+----------------+-----------+
6 rows in set (0.00 sec)

“条件3-如果类别重复,它可以是follow或follow。这没关系。”如果follow和follow在这里的意思差不多,为什么有两个表?理想情况下,您应该制作一个表
event
,其中有一个
event\u type\u id
,该表保存
follow
follow
,从
event\u type
表可以更容易查询。为什么有两个表?我知道,但这是遗留表,我必须将其合并以重用。对不起。我错过了一些条件。你能再检查一遍吗?@隐藏你的条件4是什么意思?follow_user_id作为目标_user_id和follow_id作为目标_user_id您知道
follow_id
follow_id
列名不同。所以我想把它合并到
target\u user\u id
列。@Hide我看到你更新了预期结果,这与我的答案结果相同。那么我的答案有什么问题吗?我更新了两次我的问题。请参考。follow和following具有不同的列名(
following\u user\u id
following\u user\u id