3 SQL запроса в одном - реально ли?

Metal Messiah
На сайте с 01.08.2010
Offline
152
410

Добрый день.

Нужно сделать статистику запросов файлов (грубо говоря download.php) и хранить в mySQL для удобства последующего анализа (в частности источников трафика).

Продумал как 3 таблицы:

1. таблица имен файлов (порядка десятков)

2. таблица ссылающихся адресов (порядка сотен или тысячи)

3. таблица запросов (id файла, id адреса, ip либо сразу страна пользователя и может еще что-то)

Очень хочется впихнуть все в 1 MySQL запрос, но не знаю, реально ли.

Запрос вида

INSERT INTO `table1` (field1,field2) VALUES (1,(SELECT id FROM table2 WHERE name='...' LIMIT 1))

нормально срабатывает, но что делать если в table2 не будет записи с name='...'? Можно ли тем же запросом вставить ее туда и получить id вставленной записи или все делать на php 2-3 запросами и не морочить никому голову?

---------- Добавлено 02.03.2015 в 16:11 ----------

Походу невозможно

SELECT IF(EXISTS (SELECT id FROM table1 WHERE name='name1')=1,SELECT 1 FROM table1,SELECT LAST_INSERT_ID())

1. В выборе IF не поддерживаются SELECT - только константы.

2. если FALSE то INSERT + INSERT невозможно объединить, включая методом WHERE EXISTS

3. Заставить в MySQL запросе работать IF...THEN не удалось хотя на зарубежных форумах пишут примеры...

anonymous, думай что говоришь и не забывай подписать отзыв :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий