SQL update kérdés

Sziasztok!

Van egy ilyen leválogatás:
SELECT * FROM elso LEFT JOIN masodik valami ON (valami.masodik_id = elso.masodik_id) where valami.adat like 'x'

Hogy lehetne az "elso" táblában UPDATE-et végrehajtani a fenti szűrésnek megfelelő sorokon?

Nem vagyok járatos az SQL-ben, de most kellene néhány adatot módosítanom. Megköszönném, ha valaki segítene!

Hozzászólások

Ha az "elso" táblán van elsődleges kulcs, akkor:
UPDATE elso
SET akarmi=ertek
WHERE id IN (SELECT id FROM elso LEFT JOIN masodik valami ON (valami.masodik_id = elso.masodik_id) where valami.adat like 'x')

kb ilyenek:

CREATE TABLE elso (
elso_id LINT NOT NULL,
akarmi AKARMI /*varchar(4)*/,
masodik_id LINT NOT NULL,
PRIMARY KEY (elso_id)
);
ALTER TABLE elso ADD FOREIGN KEY (masodik_id) REFERENCES masodik(masodik_id);

CREATE TABLE masodik (
masodik_id LINT NOT NULL,
adat ADAT /*varchar(10)*/,
PRIMARY KEY (elso_id)
);

Íme a "paste":

CREATE TABLE KONYV
(
KONYV_ID LINT DEFAULT 0 NOT NULL,
CIMJEGYZ_ID LINT DEFAULT 0 NOT NULL,
KONYV_TIPUS_KOD PAR_KOD,
DATUM DATMA DEFAULT "today",
ELOZO_ID LINTN,
KOVETO_ID LINTN,
PRIMARY KEY (KONYV_ID)
);
ALTER TABLE KONYV ADD
FOREIGN KEY (CIMJEGYZ_ID) REFERENCES CIMJEGYZ (CIMJEGYZ_ID) ON UPDATE NO ACTION ON DELETE NO ACTION;

CREATE TABLE CIMJEGYZ
(
CIMJEGYZ_ID LINT DEFAULT 0 NOT NULL,
NYILV_DAT DATMA DEFAULT "today",
NEV NEV,
STATUSZ _KOD NOT NULL,
PRIMARY KEY (CIMJEGYZ_ID),
CONSTRAINT ALTER_KEY1 UNIQUE (NEV)
);

Ja, csak kibontottad az igazság minden részletét, miután baszbirgáltalak. Addig fals infókat adtál, mellé is ment pár válasz. Pusztán rávezettelek, hogy jól kell kérdezni és meg kell adni a kérdés mellé a pontos információkat, amelyek a rendelkezésedre állnak, akkor lesz jó válasz nagy valószínűséggel. Látom, még nem érted.

A gond azonban az, hogy egy olyan temakor szempontjai szerint probaltal lenyeges es nem lenyeges kozott kulonbseget tenni, amit nem ismersz. Ha valamit nem ismersz, akkor inkabb ne kiserletezgess ilyenekkel, mert rovid uton katasztrofa lesz a vege. Inkabb ird be a nem relevans reszeket is, minthogy kihagyj egy relevansat.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

SELECT * FROM elso LEFT JOIN masodik valami ON (valami.masodik_id = elso.masodik_id) where valami.adat like 'x'

1. like 'x' nem túl jó. Vagy like 'x%', vagy = 'x'

2. a megoldás (szerintem)

UPDATE elso, masodik
SET elso.mezonev=ertek
WHERE valami.masodik_id = elso.masodik_id and valami.adat like 'x'

legalábbis http://dev.mysql.com/doc/refman/5.0/en/update.html tartalmaz ilyet:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

szóval szerintem mennie kéne.