有沒有辦法從select中的子查詢中獲取值?MySQL查詢聚合MAX和子查詢
stop_link表
id | duid | domain_id
1 | 1 | 1
2 | 2 | 1
3 | 1 | 2
4 | 2 | 2
5 | 3 | 1
結果,我想(假設域ID = 2)
duid | domain_id
3 | 2
查詢(不工作):
INSERT INTO stop_link (
duid,
domain_id)
SELECT
IFNULL(MAX(sl.duid), 0) + 1 AS duid,
sl.domain_id
FROM
stop_link sl
WHERE sl.domain_id = (SELECT sd.id FROM stop_domain sd LIMIT 1)
查詢工作,但我想避免設置變量:
SET @domain_id = (SELECT sd.id FROM stop_domain sd LIMIT 1);
SELECT
IFNULL(MAX(sl.duid), 0) + 1 AS duid
, @domain_id
FROM
stop_link sl
WHERE sl.domain_id = @domain_id;
什麼是你想要的結果的邏輯是什麼? –
解釋你的邏輯,以獲得所需的結果 –
我認爲你所需要做的就是插入一個「GROUP BY domain_id」。 – maraca