| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Объединение в базу по не полному совпадению |
| Автор: Roksalana 30.5.2006, 13:47 |
| Доброго времени суток. Ни как не могу придумать правильный запрос. Увидела Ваш форум и решила спросить. Суть проблемы: есть две таб (БД MySQL, на всякий случай Т.е первая: 1234335434 1653233454 5466377835 (числа - рандомайз по клаве Вторая: 123 756 346 и т.п Нужно посчитать сколько записей в таб1 начинается с кодов таб2. Конечно можно выбрать отдельно каждый код из таб2 и искать уже его в таб1 (нечто вроде select * from таб1 where поле like '<заранее выбранный код из таб2>%' ), но хотелось бы единым запросом Пробовала так: SELECT count(*) FROM таб1 , таб2 WHERE таб1.поле LIKE таб2.поле || '%' group by таб2.поле, но ИМХО, полная чушь. Очень надеюсь, что мне тут помогут |
| Автор: batigoal 30.5.2006, 14:06 | ||
| Во второй таблице длина чисел фиксирована? Если да, тогда будет что-то типа
|
| Автор: skyboy 30.5.2006, 14:09 |
| длина записей во второй таблице одна и та же(3 символа) или варьируется в пределах таблицы? |
| Автор: Akina 30.5.2006, 14:20 | ||
| Если количество разрядов во второй таблице не фиксировано, при объединении получится соотношение многие-ко-многим, что даст декартово произведение и дублирование строк в выходном запросе. А так - что-то вроде
|
| Автор: Roksalana 30.5.2006, 14:40 |
| 2 skyboy -> Нет, длинна варьируется 2 Akina -> мускул, что стоит у нас, не поддерживает вложенные запросы Проблема еще в том, что совпадать должен код наибольшей длинны, т.е если есть 1234 и 12 в таб2, то посчитать запись из таб1 12345678 нужно, как запись относяшуюуся к 1234, а не к 12. ЗЫ: пошла рыть регулярные выражения, вот только объединение тут меня смущает... |
| Автор: Roksalana 30.5.2006, 16:03 | ||
именно по тому мой селект в первом посту и не работает поле таб2 | кол-во записей в таб 1, оносящихся к полю таб2 123 | 78 12345 | 13 и т.п. |
| Автор: Akina 30.5.2006, 16:13 |
А Temporary Table он поддерживает? |