Поле сделай поиска разделенным на два: Фамилия и имя. Потому что иначе у тебя хрень выйдет. Завтра твой юзер вобьет еще и отчество - для него тоже будешь запрос мудрить? А если послезавтра он забьет сначала отчество, потом фамилию, потом имя?
я бы не парился, импортнул все через студию и руками прописал бы связи. Что касается запросов - тебе их почти наверняка придется переписывать, так что вообще забей. Больше обсуждаем, чем ты это делать будешь.
Ну что дурацкие вопросы задавать? Вот он пишет "через SSMS" - это сочетание непонятно? Или непонятно, в каком именно сервере это используется? Майкрософт, май френд, макйкрософт.
Дима Соколов: Вот именно, что нужно подумать. Акцесс, хоть и мощная штука, но при серьезной работе лучше использовать его в связке с MS SQL. Экспресс его версия бесплатна и на первых порах никаких проблем не будет. На вторых порах - зависит от того, как у вас пишется код и заливаются данные. Если перейдет через лимит для бесплатной базы - придется либо покупать официально, либо.
очень странно, что в инете не получается найти, очень. Это ж абсолютно никому не интересная тема, чо. Но по первой же ссылке в гугле - находится ответ. Удивительно, правда?
P.S. Лучшая статья на эту тему - есть на хабре, посмотри там.
вот только открыл это прекрасное руководство, прочитал "префиксы типа sp_ or tbl_ избыточны" - и сразу дальше читать не хочу. Да это офигительно, когда есть префикс tbl_ or v_ и я знаю, что в одном случае это таблица и можно смело с ней работать, а в другом это вьюха, которую хрен знает кто из команды создал и что у нее внутри. Кому оно избыточно?
Ни малейшей беды не вижу, если таблицы действительно нормализованы в том, что для итоговой выборки нужны 28 джойнов. Насчет отсутствия необходимости дергать каждый раз таблицы - тут да, согласен.
Если выборка идет из таблицы без условий: select * from my_table - ничего уже тут не сделать.
В этом случае будет зависить в первую очередь от дисковой подсистемы, играться надо с ней. Более скоростные диски ставить, ssd.
Если с условиями - то для этого индексы и создаются и правильная структура таблицы. К примеру, однозначно понятно, что выборка из таблицы с 12 int полями будет быстрей, чем из 12 строковых.
Про оракл не скажу, но в MS SQL крайне рекомендуется мной везде, где это возможно, использовать процедуры. И обновление их ничего не блочит, выполняется налету.
Надо проверять по exists. Можешь сделать либо два запроса, либо попробовать вставить exists в условие
т.е.
where id_shop = 512
and (
( exists (select * from tbl_session) and id_session = 215)
)
Т.е If в условии тебе не нужен. У тебя ж логические операции есть :)
Дальше. Одно и то же. Таблицы у тебя заджойнены? Значение id_land может быть разным?
AND cl.id_lang = 1
AND ml.id_lang = 1
Дальше:
,tt.id_season = 7
,tt.id_season IS NULL
Это что? Может, ты случайно имел ввиду это: tt.id_season = 7 OR tt.id_season IS NULL
Если со всей прямотой, май френд, тебе надо остановиться, пока не поздно и как следует обсудить со знающим человеком структуру базы. Как я понимаю, ты делаешь магазин, если на этапе старта накосячить с этим, то как более менее разовьетесь, будет жуть. А переделывать будет уже поздно, будет куча кода связанного - традиционные грабли.
Вот переменные я бы сделал еще, зачем мне два раза писать t.id_shop = 651, когда я могу использовать t.id_shop = iId_shop и сохранить запрос как процедуру?
1. Триггер. Срабатывает на обновление каждой строки и выполняет каждый раз все, что в нем.
2. Апдейт - за один раз обработает столько строк, сколько указали.