MySQL 内连接?

MySQL inner join?

我有 3 个表(2 列)如

table s   
NUM  GRADE
1    A    
2    B    
3    C   
5    D   

table p  
NUM  GRADE
1    B  
2    C  
2    D  
3    A  

table g  
NUM  GRADE
1    A  
3    C  
3    B  
4    D

我想在内部加入他们彼此这样(在s.NUM=p.NUM=g.NUM)

NUM  GRADE   
1    A  
1    B  
1    A    
2    B  
2    C  
2    D  
3    A  
3    C  
3    B  

我该怎么办?

谢谢

您可以将 UNION ALL 查询与标识在所有三个 table 之间共享的公共 NUM 值的查询结合起来。在我下面的查询中,后者 table 用作过滤器以删除未出现在所有三个 table 中的任何 NUM 记录。

SELECT t1.NUM, t1.GRADE
FROM
(
    SELECT NUM, GRADE FROM s
    UNION ALL
    SELECT NUM, GRADE FROM p
    UNION ALL
    SELECT NUM, GRADE FROM g
) t1
INNER JOIN
(
    SELECT s.NUM
    FROM s INNER JOIN p
        ON s.NUM = p.NUM
    INNER JOIN g
        ON s.NUM = G.NUM
) t2
    ON t1.NUM = t2.NUM
ORDER BY t1.NUM