如何插入其所属表的键数据和信息,以便可以使用该表中的键数据进行搜索.在SQL server中



我有多个包含行的表。

我必须制作一个包含特定行id的表,标签名称和id所属的表,以便如果我想搜索标签,我将获得多个表中存在的行结果。

如:表1

id | name | column 1
1 | A    | ..
2 | B    | ..
3 | C    | ..

表2

id | name | column 1 | column 2
1 | D    | ..       | ..
2 | E    | ..       | ..
3 | F    | ..       | ..

表3

id | name
1 | G
2 | H
3 | I

上面的表是包含数据的多个表。

<<p>标记表/strong>
Student Id | Tags     | From which table it belongs to
1          | Good Boy | Table 1
1          | Good Boy | Table 2
3          | Good Boy | Table 1
2          | Bad Boy  | Table 1
1          | Bad Boy  | Table 3

如果我想检索好孩子的数据。

预期输出

Id | name
1 | A
1 | D
3 | C

请告诉我如何插入这样的数据,以便我可以搜索好男孩或坏男孩的数据。

理想情况下,您应该将所有三个表中的数据存储在一个表中,另一列用于BelongsTo

您可以通过将所有表合并在一起来制造它,然后您只需对结果进行连接。

SELECT
t.id,
t.Name
FROM Tag
JOIN (
SELECT t.id, t.Name, 'Table1' BelongsTo
FROM table1 t
UNION ALL
SELECT t.id, t.Name, 'Table2'
FROM table2 t
UNION ALL
SELECT t.id, t.Name, 'Table3'
FROM table3 t
) t ON t.id = Tag.StudentId AND Tag.BelongsTo = t.BelongsTo
WHERE Tag.Tags = 'Good Boy';

,db&lt的在小提琴

相关内容

最新更新