![](/img/trans.png)
[英]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.