欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql有什么方法能實現(xiàn)with

阮建安2年前11瀏覽0評論

在MySQL中,可以通過下面兩種方法來實現(xiàn)類似于WITH的功能:

1. 使用派生表(Derived Table)
派生表是從一個SELECT語句中派生出來的表,可以讓我們在后續(xù)的查詢中使用這個表。使用派生表可以達(dá)到類似WITH的效果。
SELECT a.id, a.name, b.total
FROM user a
INNER JOIN (
SELECT user_id, SUM(score) AS total
FROM score
GROUP BY user_id
) b ON a.id = b.user_id
ORDER BY total DESC;

上面的查詢中,我們使用了派生表b,它是從score表中派生出來的,包含每個用戶的總分?jǐn)?shù)。然后我們再將user表和b表進(jìn)行關(guān)聯(lián),輸出用戶的ID、姓名和分?jǐn)?shù)。

2. 使用變量(Variable)
MySQL中的變量可以讓我們在查詢中存儲和傳遞數(shù)據(jù)。通過使用變量,我們可以將較為復(fù)雜的查詢分步進(jìn)行,達(dá)到類似WITH的效果。
SET @total_score := (
SELECT SUM(score)
FROM score
WHERE user_id = 1
);
SELECT user.id, user.name, @total_score AS total
FROM user
WHERE user.id = 1;

上面的查詢中,我們使用了@total_score變量來存儲用戶1的總分?jǐn)?shù)。首先我們單獨查詢了用戶1的總分?jǐn)?shù),并將結(jié)果存儲在變量中。然后我們再使用這個變量來輸出用戶的ID、姓名和總分?jǐn)?shù)。