如何连接没有公共属性的两个表

时间:2016-07-05 06:21:13

标签: sql-server

伙计们请帮我找一个解决方案....我想加入两个表,有一个共同的变量,但在一个表中存储着',' as varchar,即其他表中的id。如何加入两个表并获取值

3 个答案:

答案 0 :(得分:1)

试试这种方式

第一张表

Name    | Course Id
====================
Zishan  | 1,2,3                                           
Ellen   | 2,3,4 

第二张表

course id | course name 
=======================
   1      |  java
   2      |  C++
   3      |  oracle
   4      |  dot net

<强>查询

SELECT names.name,
       courses.course_name
FROM   names
       INNER JOIN courses
               ON ',' + names.course_ids + ',' LIKE '%,'
                                                    + Cast(courses.course_id AS NVARCHAR(20))
                                                    + ',%' 

答案 1 :(得分:1)

DECLARE @T1 TABLE (ID VARCHAR(MAX),VALUE VARCHAR(MAX))
DECLARE @T2 TABLE (ID INT,VALUE VARCHAR(MAX))
INSERT INTO @T1 VALUES ('21,22','ABC'),('30,15','DEF')
INSERT INTO @T2 VALUES (2122,'GHI'),(3020,'JKL')

SELECT  T1.*,T2.*
FROM    @T1 T1
JOIN    @T2 T2 ON T2.ID = CAST(REPLACE(T1.ID,',','') AS INT)

答案 2 :(得分:0)

我认为这很简单......

如果您的表格布局是Mukesh所具有的,那么查询可以变得更简单:

SELECT n.name,
       c.course_name
FROM 
       names n
INNER JOIN 
       courses c ON '%' + c.courseid + '%' LIKE n.courseid