Проблема с запросом

Тема в разделе "Базы данных", создана пользователем rex1963, 24 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    Структура таблиц:
    tb praktik

    praktik_id | name

    tab score

    praktik_id | event_id | score

    tab event

    date | type | event_id

    Делаю запрос:
    SELECT praktik.praktik_id, praktik.name, event.date, score.score AS score, event.type FROM praktik, event LEFT JOIN score ON praktik.praktik_id = score.praktik_id AND event.event_id = score.event_id WHERE event.event_id = $event_id ORDER BY praktik.name

    результата нет:nezn: Подскажите в чем проблема?
     
  2. picasik

    picasik Постоялец

    Регистр.:
    13 ноя 2006
    Сообщения:
    80
    Симпатии:
    21
    можеш сделать так:
    SELECT
    praktik.praktik_id,
    praktik.name,
    event.date,
    score.score AS score,
    event.type
    FROM praktik, event, score
    WHERE event.event_id = 1
    and event.event_id = score.event_id AND praktik.praktik_id = score.praktik_id
    ORDER BY praktik.name;

    или так:

    SELECT
    praktik.praktik_id,
    praktik.name,
    event.date,
    score.score AS score,
    event.type
    FROM praktik
    left join score on praktik.praktik_id = score.praktik_id
    left join event on event.event_id = score.event_id
    WHERE event.event_id = 1
    ORDER BY praktik.name
     
  3. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    Работает, да немного неправильно.:confused:
    Мне нужно объединение с выборкой пустых строк, а второй запрос этого не делает((
     
  4. Otis22

    Otis22 Создатель

    Регистр.:
    13 фев 2009
    Сообщения:
    30
    Симпатии:
    9
    Жаль структура не совсем ясна... Еслти отрезаються строки, пробуй вместо лефт использовать RIGHT, или FULL... Сейчас всё присоеденяеться к таблице практик... тоесть сколько строк в траблице практик столько строк будет в результате.
    SELECT
    praktik.praktik_id,
    praktik.name,
    event.date,
    score.score AS score,
    event.type
    FROM praktik
    left join score on praktik.praktik_id = score.praktik_id
    left join event on event.event_id = score.event_id
    WHERE event.event_id = 1
    ORDER BY praktik.name
     
  5. mail_valik

    mail_valik Создатель

    Регистр.:
    25 мар 2010
    Сообщения:
    10
    Симпатии:
    2
    А что именно ты ожидаешь?? Начни с этого!
    Напиши пример того что хочешь увидеть
     
  6. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    Проблему решил таким запросом
    PHP:
    SELECT praktik.praktik_idpraktik.nameevent.datescore.score AS scoreevent.type FROM praktik INNER JOIN event LEFT JOIN score ON praktik.praktik_id score.praktik_id AND event.event_id score.event_id WHERE event.event_id $event_id ORDER BY praktik.name
    Спасибо всем за помощь.:yahoo:
     
Статус темы:
Закрыта.