|
|
|
Запросик
|
|||
|---|---|---|---|
|
#18+
У меня есть база допустим из четырех полей prizn kmb fcode year поле prizn может иметь два значения 2 и 3 так вот нужно сделать запрос, чтобы из этой базы удалилась запись с двойкой если есть такая запись с 3. Совпадение должно быть однозначное по трем последним полям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 10:18 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. Наверняка, кто-нибудь скажет - как сделать покороче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 10:58 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
авторНаверняка, кто-нибудь скажет - как сделать покороче... Не знаю насчет покороче, но твой запрос не подходит по условию. Вместо "однозначного совпадения по трем последним полям", у тебя удаляться все записи с 2, если есть есть - хоть одна запись с 3 и таким же kmb, - хоть одна запись с 3 и таким же fcode, - хоть одна запись с 3 и таким же year. Правильнее так: Код: plaintext 1. 2. (не проверял, мб понадобиться какие-нибудь скобки расставить в условиях) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 11:16 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
GEOНе знаю насчет покороче, но твой запрос не подходит по условию. Вместо "однозначного совпадения по трем последним полям", у тебя удаляться все записи с 2, если есть есть - хоть одна запись с 3 и таким же kmb, - хоть одна запись с 3 и таким же fcode, - хоть одна запись с 3 и таким же year. Только что все переправерил по твоим замечаниям - оказались неверными... Все работает, как дано в задании... Проверь у себя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 11:26 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Твой запрос удаляет последнюю запись. Заодно и свой проверил: DELETE * FROM Таблица1 LEFT JOIN Таблица1 AS t ON ((t.prizn=3) and (t.kmb=Таблица1.kmb) and (t.fcode=Таблица1.fcode) and (t.year=Таблица1.year)) WHERE t.prizn is not null and Таблица1.prizn=2; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 11:31 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
DELETE Таблица1.* FROM Таблица1 WHERE ((Таблица1.prizn)=2) and Exists (select * from Таблица1 AS t where t.prizn=3 and t.kmb=Таблица1.kmb and t.fcode=Таблица1.fcode and t.year=Таблица1.year); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 11:42 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
2Лифчик 2Deminik Врал только насчет работоспособности своего :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 11:44 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
2 GEO Проверил - действительно вру... До этого я проверял только в текстовом формате - и все прекрасно работало... А с твоим числовым примером - не работает... И все же я не до конца соображаю: везде же AND стоит... Разъясни, если не затруднит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 14:47 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
авторДо этого я проверял только в текстовом формате - и все прекрасно работало... Вот из этой таблицы твой запрос тоже удалил последнюю запись: Код: plaintext 1. 2. 3. 4. авторРазъясни, если не затруднит... > DELETE Таблица1.prizn, Таблица1.kmb, Таблица1.fcode, Таблица1.year УДАЛИТЬ >FROM Таблица1 ЗАПИСИ ИЗ Таблицы1 >WHERE Таблица1.prizn=2 В КОТОРЫХ поле prizn=2 > and Таблица1.kmb in(select Таблица1.kmb from Таблица1 where Таблица1.prizn=3) и есть хоть одна запись в запросе (select Таблица1.kmb from Таблица1 where Таблица1.prizn=3) с таким же значением поля kmb > and Таблица1.fcode in(select Таблица1.fcode from Таблица1 where Таблица1.prizn=3) и есть хоть одна запись в запросе (select Таблица1.fcode from Таблица1 where Таблица1.prizn=3) с таким же значением поля fcode > and Таблица1.year in(select Таблица1.year from Таблица1 where Таблица1.prizn=3); и есть хоть одна запись в запросе (select Таблица1.year from Таблица1 where Таблица1.prizn=3) с таким же значением поля year ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 16:59 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
а вот вариант с группировкой Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:03 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
автора вот вариант с группировкой И тоже нерабочий... Удалил обе записи (других в таблице не было). Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:09 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
А отсюда, соответственно, ни одной: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:10 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
Сорру полагал что 4-ре поля дают ключ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 18:40 |
|
||
|
Запросик
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 00:33 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1656&tid=1675644]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 331ms |

| 0 / 0 |
