提问者:小点点

如何使用mysql将两个表连接起来,而不在任何一方重复


我有两个表A和B来连接,两个表都有一个共同的列。但是两个表中的id都不是唯一的,所以每个表中可能有多行具有相同的id。

表A:

OFF_ID  |   OFF_NAME  |   YEAR   
  1        |     abc_tech   |     4yrs

  2        |      def_tech   |     6yrs

  3        |      ghi_tech   |     2yrs

  4        |      xyz_tech   |     10yrs

  5       |       lmn_tech    |    14yrs


**Table B**:

ID | NAME    |  DOB   | CITY   
 1 | George  |  2001  | chennai    
 1 | paul    |  2005  | bangalore    
 1 | hem     |  1997  | mumbai    
 2 | vasanth |  1997  | kerala    
 2 | vicky   |  1997  | gujarat    
 3 | narayan |  1997  | kerala

我需要一个输出,其中多行id应该显示一次,其他行保持为空。

所需输出:

OFFICE_ID OFFICE_NAME年份ID名称DOB城市

 1          abc_tech      4yrs      1       george      2001       chennai
 -               -          -       1        paul       2005      bangalore
 -               -          -       1        hem        1997       mumbai
 2         def_tech        6yrs     2      vasanth      1997       kerala
 -             -             -      2       vicky       1997      gujarat
 3         ghi_tech        2yrs     3       narayan     1997       kerala
 4         xyz_tech        10yrs    -         -           -           -       
 5         lmn_tech        14yrs    -         -           -           -   

如果我得到的查询是mysql查询,这将对我有帮助。事先表示感谢**


共2个答案

匿名用户

SELECT*FROM table1 LEFT JOIN table2 on table1.id=table2.id

匿名用户

如果我没弄错的话,上一个代码块中描述的输出很难通过MySQL实现。你想输出到哪里?当您循环您的输出时,您可以在这一点上处理它。