Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как обойтись без вложенных запросов? / 8 сообщений из 8, страница 1 из 1
30.11.2005, 20:43:10
    #33409753
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
Есть такая проблема: есть таблица по владельцам. Есть таблица по вещам.
После обработки некоторых данных составляются запросы на вставку. Однако, в качестве внешнего ключа в таблице владельцев используется целочисленный автоинкрементный ключь. А из тех данных, из которых вставляются вещи можно взять тока имя. Еслиб в МуСКЛ моём были вложенные запросы, то я сделал бы так:
Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT INTO arts(vladelec, nazvanie)
 VALUES(
(
SELECT id FROM users WHERE name LIKE "Mihail"
),
"Шмотка"
)
...
Рейтинг: 0 / 0
30.11.2005, 22:33:01
    #33409822
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
Sarin
Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT INTO arts(vladelec, nazvanie)
 VALUES(
(
SELECT id FROM users WHERE name LIKE "Mihail"
),
"Шмотка"
)

вопрос не понятен...
в частности, причем тут вложенный запрос?

а процитированный запрос я бы написал так:
Код: plaintext
1.
INSERT INTO arts(vladelec, nazvanie)
SELECT id, "Шмотка" FROM users WHERE name LIKE "Mihail"
...
Рейтинг: 0 / 0
30.11.2005, 22:46:50
    #33409834
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
Ну в общем направление такое. Но твой запрос не пашет.
Код: plaintext
1.
2.
mysql> insert into planet(vladelec) select id from planet where name Like "Sarin";
ERROR  1066 : Not unique table/alias: 'planet'
mysql>
...
Рейтинг: 0 / 0
30.11.2005, 22:55:12
    #33409840
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
RTFMPrior to MySQL 4.0.14, the target table of the INSERT statement cannot appear in the FROM clause of the SELECT part of the query. This limitation is lifted in 4.0.14
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
01.12.2005, 01:52:46
    #33409964
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
Можно какнибудь реализовать такое на 4.0.13?
...
Рейтинг: 0 / 0
01.12.2005, 01:56:41
    #33409965
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
Обновлением до 4.0.26?,)
...
Рейтинг: 0 / 0
01.12.2005, 02:51:34
    #33409969
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
DocAlОбновлением до 4.0.26?,)
Тогда уж до пятой:)

Пожалуй так и сделаю.
...
Рейтинг: 0 / 0
01.12.2005, 14:41:39
    #33411293
black zorro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойтись без вложенных запросов?
а если за два шага через переменную
Код: plaintext
1.
2.
3.
4.
5.
SET @id_of_analog = LAST_INSERT_ID(); -- или же запрос на поиск по названию ключа
  
INSERT INTO  foo (bar, tar, var)
   VALUES (@id_of_analog, 'analog' , 'analog_1');

...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как обойтись без вложенных запросов? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]