[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вложенный запрос
kevmen
Здравствуйте. Не знаю решение проблемы. Помогите, либо направьте.
1) Есть таблица пользователи
Условно user_id user_name
2) Вторая таблица книги
book_id book_name
3) Третья таблица: связь пользователя и все прочитанные книги
user_id book_id

Пользователь авторизовался, получили все его данные одним запросом, возможно ли этим же запросом вывести все прочитанные книги? Left join выводит лишь одну запись. Как вывести все?

Спасибо.
HErATuB
Возможно
SlavaFr
Цитата (kevmen @ 8.04.2013 - 19:13)
Left join выводит лишь одну запись. Как вывести все?

A как ты выводиш? Код пожалюйста


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
kevmen
SELECT u.user_id, u.user_name, b.book_name  FROM `users` u
LEFT JOIN `books` b ON b.book_user_id=u.user_id
WHERE u.user_pass='{$user_pass}' AND u.user_login='{$user_login}'


Примерно вот так.
inpost
kevmen
У таблицы books отсутствует book_user_id. Как ты пытаешься это сделать, что работает у тебя?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
kaww
select u.*, b.* from users as u
left join users_books as ub on u.user_id=ub.book_id
left join books as b on ub.book_id=b.book_id
where u.login='$login' and u.password='$password'
kevmen
2inpost , это был просто пример, как я выбираю, поле есть.
2kaww, этот запрос выведет лишь одну книгу, а мне нужны все(их может быть 5, 10, 20).
inpost
kevmen
Как можно разбирать запрос, когда ты его неверно пишешь, но при этом говоришь, что он рабочий.
Мы же разбираем твои скрипты и указываем тебе на твои ошибки.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
kaww
Цитата (kevmen @ 11.04.2013 - 19:31)
этот запрос выведет лишь одну книгу, а мне нужны все(их может быть 5, 10, 20).

неправда, этот запрос выведет ВСЕ книги для юзера с login='$login' and password='$password'. хотя бы сначала попробуй выполнить его прежде чем что-то утверждать. Или у тебя какой-то особый mysql со своим синтаксисом?
kevmen
kaww, прошу прощения. Действительно.
Но возникает вопрос, если у пользователя в таблице 20 полей, а прочитанных книг порядка 30, то создается 30 переменных, которые содержат все значения. Каким образом обработать эти данные корректнее?
Пока представляю лишь один способ: извлекать из каждого массива нужные переменные и удалять весь массив, оставив лишь один с личными данными.
Valick
Цитата
извлекать из каждого массива нужные переменные и удалять весь массив

вы с бд работаете, пора бы уже забыть про массивы, и учить великий и могучий SQL


_____________
Стимулятор ~yoomoney - 41001303250491
kevmen
Покажите куда копать.
kevmen
Товарищи.
inpost
Как минимум твоё решение в лоб справилось бы с задачей.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
kevmen
Хотелось бы сделать наиболее оптимально и правильно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.