Я так растерялся, SQL не моя сильная сторона.
Я искал следующие ответы, но я могу заставить свой собственный запрос работать:
INSERT INTO table_listnames (name, address, tele)
SELECT * FROM (SELECT 'Rupert', 'Somewhere', '022') AS tmp
WHERE NOT EXISTS (
SELECT name FROM table_listnames WHERE name = 'Rupert'
) LIMIT 1;
И
INSERT INTO `table` (value1, value2)
SELECT 'stuff for value1', 'stuff for value2' FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `table`
WHERE value1='stuff for value1' AND value2='stuff for value2')
LIMIT 1
Я хочу вставить результат подзапроса в новую таблицу (соответствует), это мой запрос:
INSERT INTO matches (fk_object_id, object_adress, fk_lookout_id, lookout_name)
(SELECT o.id as oid, o.adress as oa, l.id as lid, l.first_name as lfn
FROM geo_lookout gl
JOIN geo_object go ON go.`fk_geo_id` = gl.`fk_geo_id`
JOIN object o ON o.id = go.`fk_object_id`
JOIN attri_object ao ON ao.`fk_object_id` = go.`fk_object_id`
JOIN attri_lookout al ON al.`fk_attri_id` = ao.`fk_attri_id`
JOIN lookout l ON l.`id` = al.`fk_lookout_id`
WHERE o.`have_size` <= l.`max_size`
AND o.`have_size` >= l.`min_size`
GROUP BY o.id)
WHERE NOT EXISTS (SELECT * FROM matches WHERE fk_object_id = oid AND fk_lookout_id = lid)
LIMIT 1
Я всегда получаю следующую ошибку:
У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с «ГДЕ НЕ СУЩЕСТВУЕТ» (SELECT * FROM соответствует WHERE fk_object_id = oid AND fk_lookout_ 'в строке 12
Большой запрос SELECT свсе JOINS работают нормально:
oid oa lid lfn
45 aGoodStreet 32 Andrew Phillis
44 aGoodStreet 32 Andrew Phillis
Ребята, ребята, вы видите более ясно, чем я? Вероятно:)
С уважением