[英]How to delete one row from a table and multiple rows on another that are related?
[英]how to select single row from one table and multiple rows from another table toghether?
我有一个下表用户具有以下定义
id integer
Name varchar
Email varchar
Location varchar
Phone varchar
Picture varchar
Status varchar
我还有另一个表用户技能,它具有以下定义
id integer
Userid integer
Skill integer
不,我想组合两个表并从第一个表中选择单行,而从另一个表中选择多行,因为用户可以拥有多种技能,但我获得了多行用户数据,但我想要单行? 谁能告诉我如何在一行中获取用户及其相应的技能?
你可以用 PIVOT 做到这一点。 您将从技能表中选择技能,然后将它们转入一行。 然后加入用户。
这是一个具有固定数量技能的示例。
WITH TEMP AS
(
SELECT 'John' AS U, 'Driver' AS S
UNION ALL
SELECT 'John' AS U, 'Plumber' AS S
UNION ALL
SELECT 'Jim' AS U, 'Driver' AS S
UNION ALL
SELECT 'Tom' AS U, 'Driver' AS S
)
SELECT * FROM
( SELECT *, U AS DRIVER FROM TEMP ) AS P
PIVOT
(
COUNT([U])
FOR S IN ([Driver],[Plumber])
) AS PIV
如果您有可变数量的技能,您将必须首先查询它,然后将其转换为字符串并在该字符串上运行 EXEC。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.