Общие > Базы данных
организация MySql таблицы из Excel
UltraMax:
Спасибо помогло
и последний (надеюсь) вопрос :)
у меня в БД MySql три таблицы
в двух из них rate и local называются три поля
id, number, prefix
из формы запросом идут две цифры - сотвтественно number и prefix, надо сначала в local найти а если нет - то в rate найти строку где и prefix и number совпадают и выдернуть оттуда id
а потом в третей колонки (там id поле и number) на основании id найденного - выдернуть number (колнка называется output)
не подскажешь как это лучше сделать
я вроде делаю так
SELECT output.number FROM input_local_center,output WHERE input_local_center.prefix REGEXP "330" and input_local_center.number REGEXP "203";
но выдает 5 тышш записей с лишним вместо одной
где грабли?
C++:
Честно говоря не понял.... подробнее объясни....
А где у тебя в запросе хоть раз упоминается о значении поля id?
UltraMax:
в общем так
три таблицы
output, input_local_center, input_rate_center
во 2-ой и третьей есть поля id, prefix, number
надо искать сначала в input_local_center, потом в input_rate_center(если в local не найдется) то что будет введено из HTML формы (будет вводиться prefix и number)
как найдет - берет id из табицы, и селектит поле number уже по этому id в таблице output строчку (там есть тоже поле id)
все
вот собсно как мне правильно запрос составить? не подскажете :)
C++:
А какая версия MySQL?
Если ниже 4, то только двумя запросами (или тремя если в первой таблице запрос ничего не выдает) ИМХО, т.е. тебе в начале нужно сделать запрос к первой, потом если в первой ничего нет, то во второй найти нужное поле, а потом по выбранному значению id запросить number из третьей таблицы....
т.е
SELECT DISTINCT id FROM input_local_center,input_rate_center WHERE prefix=10 AND number=25
сохраняешь результат запроса в ID
SELECT number FROM output WHERE id=ID
UltraMax:
ЭЭЭЭ - на сколько я понял вложенные запросы только с версии 4.1 и а не с 4.0, так что увы только несколько запросов :(
Далее - я пробовал уже твой вариант, но все дело в том, что сохранить результат запроса в id можно - но если у меня их несколько? То он вроде не прокатывает во втором select-e - ругается на неправильный запрос
так что я сделал временную таблицу - и в нее результаты выборки кидаю. А затем уже из нее второй SelECT
Кстати - уточнение можно?
Мне надо использовать поиск по второй таблице ТОЛЬКО если в первой ничего нет. Если в первой нашлось - то вторую select-ить не надо.
В твоем SELECT-e вроде как по любому будет в двух таблицах искать. Или я не прав?
Навигация
Перейти к полной версии