Moin,
Besucher einer Messe sollen einen Vermerk in ihren Stammsatz (adr1) bekommen, wenn weder Kontaktwünsche (kon1) noch Eventwünsche (evb1) gespeichert sind.
SQL-Fehlermeldung: #1241 - Operand should contain 1 column(s)
Hatte ich schon befürchtet, aber der Unter-select kommt mit diesem einen Feld nicht aus, die Anzahl der Wünsche müssen ermittelt werden:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# merkmalsleiste Stelle 5 auf E (Erinnern) setzen
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UPDATE tm_adressen adr1
SET adr1.merkmalsleiste = CONCAT( SUBSTRING(merkmalsleiste,1,4), 'E' )
WHERE adr1.owner_id = '17'
AND adr1.id =
(
SELECT
adr1.id
,adr1.bezeichnung
,adr1.nname
,adr1.vname
,COUNT(kon1.besucher_id) anzahl_kontaktwuensche
,COUNT(evb1.adress_id) anzahl_eventwuensche
FROM tm_adressen adr1
LEFT JOIN tm_kontakte kon1
ON kon1.besucher_id = adr1.id
AND kon1.prio_1 = '1' # Aussteller-Wuensche ignorieren
LEFT JOIN tm_eventbuchungen evb1
ON evb1.adress_id = adr1.id
WHERE adr1.owner_id = '17'
AND adr1.adr_kz = 2
GROUP BY adr1.id
HAVING anzahl_kontaktwuensche = 0 AND anzahl_eventwuensche = 0
)
Folgende Variante erzeugt #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT adr2.id ,adr2.bezeichnung ,adr2.nname ,adr2.vname ,COUNT(kon1.besuc' at line 9
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# merkmalsleiste Stelle 5 auf E (Erinnern) setzen
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UPDATE tm_adressen adr1
SET adr1.merkmalsleiste = CONCAT( SUBSTRING(merkmalsleiste,1,4), 'E' )
WHERE adr1.owner_id = '17'
AND adr1.id = adr2.id
(
SELECT
adr2.id
,adr2.bezeichnung
,adr2.nname
,adr2.vname
,COUNT(kon1.besucher_id) anzahl_kontaktwuensche
,COUNT(evb1.adress_id) anzahl_eventwuensche
FROM tm_adressen adr2
LEFT JOIN tm_kontakte kon1
ON kon1.besucher_id = adr2.id
AND kon1.prio_1 = '1' # Aussteller-Wuensche ignorieren
LEFT JOIN tm_eventbuchungen evb1
ON evb1.adress_id = adr2.id
WHERE adr2.owner_id = '17'
AND adr2.adr_kz = 2
GROUP BY adr2.id
HAVING anzahl_kontaktwuensche = 0 AND anzahl_eventwuensche = 0
)
denke ich zu kompliziert? Habe im Netz kein vergleichbares Beispiel gefunden.
Gruß, Linuchs