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