我有两个名为branch
和source
的表。表格branch
包含列b_id
和b_name
,表格source
包含列s_name
和b_code
,其中每行包含多个b_code
被逗号隔开。我想要字段s_name
和b_name
的结果。
答案 0 :(得分:0)
SQL 将是这样的:
SELECT source.s_name, branch.b_id
FROM source
INNER JOIN branch ON source.b_code = branch.b_id
ORDER BY source.b_code
我正在使用 MS SQL ,但尚未对该查询进行测试。如果结果是正确的,请告诉我。
答案 1 :(得分:0)
您可以使用FIND_IN_SET
尝试以下解决方案:
SELECT s.s_name, GROUP_CONCAT(b.b_name) AS 'b_name'
FROM `source` s INNER JOIN branch b ON FIND_IN_SET(b.b_id, s.b_code)
GROUP BY s.s_name
答案 2 :(得分:0)
试试这个
SELECT source.*,GROUP_CONCAT(branch.b_name) FROM source LEFT JOIN
branch ON FIND_IN_SET(branch.b_id,source.b_code) group by source.s_name
答案 3 :(得分:0)
SELECT source.s_name,GROUP_CONCAT(branch.b_name)
FROM source
INNER JOIN branch on FIND_IN_SET(branch.b_id,source.b_code)
GROUP BY source.s_name;
尝试此查询。