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
 nicht angemeldet
 nicht angemeldet Rolf B
 Rolf B MudGuard
 MudGuard