(no subject)
Wednesday, September 13th, 2006 15:43UPDATE parlament SET draka=1 WHERE tribuna
А вообще дурь такая в голове прёт, что чуть на полном серьёзе не написал DELETE FROM table1 LEFT JOIN table2... ;)
Update. Из комментов узнал много нового о синтаксисе SQL. Там несколько неочевидная логика.
А вообще дурь такая в голове прёт, что чуть на полном серьёзе не написал DELETE FROM table1 LEFT JOIN table2... ;)
Update. Из комментов узнал много нового о синтаксисе SQL. Там несколько неочевидная логика.

no subject
Date: Wednesday, September 13th, 2006 11:09 am (UTC)no subject
Date: Wednesday, September 13th, 2006 12:10 pm (UTC)М-да, дуплю. Я думал, что как раз LEFT JOIN не канает.
no subject
Date: Wednesday, September 13th, 2006 12:19 pm (UTC)no subject
Date: Wednesday, September 13th, 2006 12:34 pm (UTC)работает аж так:
DELETE b.* FROM books b LEFT JOIN authors a ON (a.id = b.author_id) WHERE a.id = 1
в общем от селекта отличается чуток.
я то помню когдато удалял через лефт джойн строки, для которых нет соответствий...
no subject
Date: Wednesday, September 13th, 2006 12:18 pm (UTC)Тестовые данные:
CREATE TABLE authors (
id int(10) unsigned NOT NULL auto_increment,
author_name varchar(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO authors VALUES (1, 'JRRT');
INSERT INTO authors VALUES (2, 'Lukjanenko');
CREATE TABLE books (
id int(10) unsigned NOT NULL auto_increment,
author_id int(10) unsigned NOT NULL,
book_title varchar(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO books VALUES (1, 1, 'LOTR');
INSERT INTO books VALUES (2, 2, 'Dnevnoj dozor');
INSERT INTO books VALUES (3, 2, 'Nochnoj dozor');
Вот это работает аж на ура:
SELECT books.book_title, authors.author_name
FROM books
LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name LIKE 'Lukjanenko'
А вот это - хуюшки:
DELETE FROM books
LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name LIKE 'Lukjanenko'
Грит #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 'LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name LIK' at line 3
no subject
Date: Wednesday, September 13th, 2006 12:37 pm (UTC)FROM books
LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name LIKE 'Lukjanenko'
работает сабака..
и так тоже:
DELETE books
FROM books
LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name NOT LIKE 'Lukjanenko'
глупый синтаксис какойто..
no subject
Date: Wednesday, September 13th, 2006 12:42 pm (UTC)DELETE books, authors
FROM books
LEFT JOIN authors ON books.author_id = authors.id
WHERE authors.author_name LIKE 'Lukjanenko'
Работает, но как жутко выглядит! :)
Примерно то, что мне нужно (речь шла о том, что при удалении какой-то ерунды надо удалить всё, что на эту ерунду ссылалось).