Gibt es eine Möglichkeit Wert aus einer Unterabfrage in zu bekommen, wo innen wählen?MySQL Query-Aggregat MAX und Unterabfrage
stop_link Tabelle
id | duid | domain_id
1 | 1 | 1
2 | 2 | 1
3 | 1 | 2
4 | 2 | 2
5 | 3 | 1
Ergebnis, das ich will (nehmen domain_id = 2)
duid | domain_id
3 | 2
Query (nicht funktioniert):
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)
Abfrage funktioniert, aber ich möchte vermeiden die eingestellte Variable:
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;
Was ist die Logik für das Ergebnis, das Sie wollen? –
erklären Sie Ihre Logik, um das gewünschte Ergebnis zu erhalten –
Ich denke, alles, was Sie tun müssen, ist eine 'GROUP BY domain_id' einzufügen. – maraca