2012-02-21 3 views
-1

Я хочу создать систему уведомлений для веб-сайта. В этой системе я держу действие и активность. Действие указывает таблицу, с которой я хочу присоединиться, а действие - это идентификатор нужного элемента. Так, например, если я укажу действие как 1, я перейду в таблицу1 и получаю запись «активность». Вместо того, чтобы присоединиться ко всем таблицам и исключить нулевые столбцы; Я хочу более эффективный способ с условным выражением.Mysql Conditional Select-Join

+1

Тогда спроектируйте его, и если вы нажмете проблему, задайте что-то конкретное. Если вы уже разработали что-то, более подробная информация, такая как структура таблицы и примеры запросов/данных, будет полезна для определения вашей проблемы. –

ответ

0

Если я понимаю, что вам нужно, вы хотите использовать значение из одной таблицы, чтобы определить, какие таблицы для соединения.

Насколько я знаю, не было бы способа сделать это только с одним запросом. Лучше всего было бы построить запрос в коде вашего сайта (PHP или что бы то ни было) и перейти оттуда.

0

Предполагая, что он предназначен для масштабирования и не является статическим списком нескольких таблиц, наличие отдельной таблицы на основе входной переменной, по-видимому, указывает на то, что дизайн базы данных не является достаточно общим. Как правило, это будет достигнуто за счет того, что одна таблица включает все подтаблицы, которые вы, возможно, будете искать, с новым полем, указывающим, какой набор данных вы ищете.

Если таблицы действительно не настолько похожи, чтобы их можно было сконденсировать в охватывающую таблицу, то, вероятно, в вашем запросе будет гораздо больше изменений, чем просто имя таблицы, и в этом случае вы хотите правильно писать свой запрос для задание (с правильными таблицами) с самого начала. Это означает использование разных запросов для разных операций БД, наиболее вероятно один для каждой таблицы, и запись запроса на языке программирования доступа.