- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, необходимо выбрать данные из нескольких таблиц. Ниже сама структура:
Теперь есть задание: нужно отобразить на странице пользователя в каких статьях он оставлял сообщения и кто их опубликовал.
Делаю так: 1. из $_GET запроса получаю ид пользователя который просматривает свой профиль, делаю запрос в первую таблицу сообщений и выбираю ид статьи. 2. Потом делаю второй запрос По ид статьи и выбираю ид пользователей которые опубликовали статью. 3. Делаю третий запрос в таблицу пользователей и выбираю ник по ид с второй таблицы.
И собственно вопрос, как возможно получить все нужные данные использовав как минимум запросов в БД. Огромное спасибо всем за ответы!
SELECT p.ид_статьи, u.ид_пользователя, u.ник FROM posts p INNER JOIN article a ON (p.ид_статьи=a.ид_статьи) INNER JOIN users u ON(а.ид_пользователя_который_добавил=u.ид_пользователя) WHERE p.ид_пользователя=$_GET
posts - таблица сообщений
articles - таблица статьи
users - таблица юзеров
SELECT p.ид_статьи, u.ид_пользователя, u.ник FROM posts p INNER JOIN article a ON (p.ид_статьи=a.ид_статьи) INNER JOIN users u ON(а.ид_пользователя_который_добавил=u.ид_пользователя) WHERE p.ид_пользователя=$_GET
posts - таблица сообщений
articles - таблица статьи
users - таблица юзеров
Очень сложно въезжаю. Объясните пожалуйста что означают буквы перед названием поля те: p.ид_статьи, u.ид - р и u, какую роль они играют. Я еще не силен в сложных запросах. Спасибо!
Очень сложно въезжаю. Объясните пожалуйста что означают буквы перед названием поля те: p.ид_статьи, u.ид - р и u, какую роль они играют. Я еще не силен в сложных запросах. Спасибо!
Эти буквы нужны только для того чтобы сократить запрос, в данном примере posts = p, article = a,users = u. Указание таблиц обязательно, потому что это сложный запрос в базу данных при котором учитываются колонки с одинаковыми колонками, т.е. название колонки в таблице сообщений ид_статьи и колонка в таблице самой статьи ид_статьи одинаковые:> Объяснил как мог :>
Эти буквы нужны только для того чтобы сократить запрос, в данном примере posts = p, article = a,users = u. Указание таблиц обязательно, потому что это сложный запрос в базу данных при котором учитываются колонки с одинаковыми колонками, т.е. название колонки в таблице сообщений ид_статьи и колонка в таблице самой статьи ид_статьи одинаковые:> Объяснил как мог :>
Подскажите пожалуйста на каких ресурсах можно почитать про сложные запросы, а то пока все что находил про простые запросы. Спасибо!
sql-ex.ru
10 SLQей
SELECT p.ид_статьи, u.ид_пользователя, u.ник FROM posts p INNER JOIN article a ON (p.ид_статьи=a.ид_статьи) INNER JOIN users u ON(а.ид_пользователя_который_добавил=u.ид_пользователя) WHERE p.ид_пользователя=$_GET
posts - таблица сообщений
articles - таблица статьи
users - таблица юзеров
Запрос выдает ошибку
Unknown column 'а.ид_пользователя_который_добавил' in 'on clause' хотя в БД есть эта колонка
Unknown column 'а.ид_пользователя_который_добавил'
'а.ид_пользователя_который_добавил_статью' вы, видимо, последнее слово пропустили..
p.s. Разберитесь со структурой.. используйте нормальные названия полей.. приводите их тут же, если нужен "готовый" код.. - в смысле шансов больше.
p.p.s. ещё тут можно ошибиться.. INNER JOIN article a ON
'а.ид_пользователя_который_добавил_статью' вы, видимо, последнее слово пропустили..
p.s. Разберитесь со структурой.. используйте нормальные названия полей.. приводите их тут же, если нужен "готовый" код.. - в смысле шансов больше.
p.p.s. ещё тут можно ошибиться.. INNER JOIN article a ON
Спасибо за замечание.Вот реальный запрос с реальными названиями полей:
где
sed_offers - таблица постов
sed_projects - статьей
sed_users - пользователи
ошибка такая
#1054 - Unknown column 'а.item_userid' in 'on clause'
"а" русская -
"а" русская -
Спасибо, огромное, все получилось.