|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2011, 12:28 | #1 |
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
Стоит ли объединять 2 таблицы в запросе если необходимо только одно значение из первой?
Нужен совет.
Есть 2 таблицы в базе данных: 1я содержит информцию пользователя, 2я - записи пользователя (например отправленные им сообщения). Необходимо вывести список сообщений пользователя. На выходе должен быть список сообщений пользователя после его имени (например "Иванов Иван: Привет. как дела?"). Имя соответственно берется из первой таблицы, сообщения из второй. Пример первой таблицы table_1 uid, user_name второй table_2 uid, msg_text Вариант решения первый - 2 запроса: SELECT user_name FROM table_1 WHERE uid=$userid так находим имя пользователя и потм его используем для каждого найденного сообщения: SELECT user_name FROM table_2 WHERE uid=$userid И вариант 2й - запрос к обоим таблицам: SELECT user_name, msg_text FROM table_1,table_2 WHERE table_1.uid=$userid AND table_1.uid=table_2.uid Вопрос - какой вариант лучше? Просьба в двух слов написать почему. Спасибо |
17.04.2011, 13:14 | #2 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
например, у пользователя есть 25 сообщений - какой смысл все 25 раз запрашивать из table_1 одно и тоже имя для пользователя?(не говоря уж о машинных ресурсах). Второй вариант подходит для ситуации, когда нужно выбрать, например, 25 последних сообщений. Т.е. когда пользователи будут(могут быть) разными - соответственно, неизбежно требуется имя пользователя для каждого конкретного сообщения. |
|
17.04.2011, 14:20 | #3 |
Форумчанин
Регистрация: 27.01.2010
Сообщений: 330
|
AlexanderGalkin
Думаю что вариант 2 более правильный, но почему не создать одну таблицу: Код:
|
17.04.2011, 18:05 | #4 |
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
Andkorol, спасибо. Тоже склонялся к этому решению, т.к. возращаться всегда будет одно и то же имя.
Abuhamed, объединять думаю не стоит, так как это только пример. В реальности каждая из таблиц имеет около 20 колонок (первая - различные данные пользователя, вторая - подробности по сообщению - тема, текст сообщения, кто проголосовал за сообщение, когда было создано и т.д.) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Присвоить нескольким переменным одно значение | fezilk25 | Общие вопросы Delphi | 8 | 20.11.2010 21:57 |
как изменить только одно поле в БД. Делфи. | FACE OFF | Помощь студентам | 0 | 24.09.2010 20:21 |
Группы символов, состоящие только из латинских букв, если первая буква группы входит в нее еще только оди | Ela | Помощь студентам | 0 | 29.04.2010 13:41 |
Данные из двух полей исх. таблицы в одно поле сводной таблицы | Strelec79 | Microsoft Office Excel | 2 | 02.08.2009 13:59 |
Всплывающая подсказка, если одно из значний меньше 0 | kzld | Microsoft Office Excel | 6 | 22.07.2009 07:37 |