За последние 24 часа нас посетили 18552 программиста и 1671 робот. Сейчас ищут 911 программистов ...

Возможен ли LIMIT до INNER JOIN?

Тема в разделе "MySQL", создана пользователем Nachtvolk, 6 июн 2011.

  1. Nachtvolk

    Nachtvolk Активный пользователь

    С нами с:
    24 фев 2011
    Сообщения:
    31
    Симпатии:
    0
    Последовательно объединяются пять таблиц через INNER JOIN:

    $rootQueryText = "
    SELECT
    `instructors`.`imja`,
    `instructors`.`familia`,
    `instructors`.`birth`,
    `instructors`.`pol`,
    `instructors`.`place`,
    `instructors_x_relizes`.`ID_instructors`,
    `instructors_x_relizes`.`ID_relizes`,
    `instructors_x_relizes`.`realdays`,
    `relizes`.`ID_models`,
    `relizes`.`ID_tour_status`,
    `relizes`.`start`,
    `tour_models`.`days`,
    `tour_models_x_dir`.`ID_models`,
    `tour_models_x_dir`.`ID_dir`,
    `dir`.`dirtitle`

    FROM
    `instructors`,
    `instructors_x_relizes`,
    `relizes`,
    `tour_models`,
    `tour_models_x_dir`,
    `dir`

    WHERE
    `instructors`.`ID`=`instructors_x_relizes`.`ID_instructors` AND
    `instructors_x_relizes`.`ID_relizes`=`relizes`.`ID` AND
    `relizes`.`ID_models`=`tour_models`.`ID` AND
    `tour_models`.`ID`=`tour_models_x_dir`.`ID_models` AND
    `tour_models_x_dir`.`ID_dir`=`dir`.`ID` AND
    CURDATE() > DATE_ADD(`relizes`.`start`, INTERVAL `tour_models`.`days` DAY);";[/php]

    Как взять для объединения только определённые n строк первой таблицы (instructors)?
     
  2. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    не уверен, но может так сработает:
    [sql]SELECT
    `instructors`.`imja`,
    `instructors`.`familia`,
    `instructors`.`birth`,
    `instructors`.`pol`,
    `instructors`.`place`,
    `instructors_x_relizes`.`ID_instructors`,
    `instructors_x_relizes`.`ID_relizes`,
    `instructors_x_relizes`.`realdays`,
    `relizes`.`ID_models`,
    `relizes`.`ID_tour_status`,
    `relizes`.`start`,
    `tour_models`.`days`,
    `tour_models_x_dir`.`ID_models`,
    `tour_models_x_dir`.`ID_dir`,
    `dir`.`dirtitle`

    FROM
    (select * from `instructors` limit 10) instructors,
    `instructors_x_relizes`,
    `relizes`,
    `tour_models`,
    `tour_models_x_dir`,
    `dir`

    WHERE
    `instructors`.`ID`=`instructors_x_relizes`.`ID_instructors` AND
    `instructors_x_relizes`.`ID_relizes`=`relizes`.`ID` AND
    `relizes`.`ID_models`=`tour_models`.`ID` AND
    `tour_models`.`ID`=`tour_models_x_dir`.`ID_models` AND
    `tour_models_x_dir`.`ID_dir`=`dir`.`ID` AND
    CURDATE() > DATE_ADD(`relizes`.`start`, INTERVAL `tour_models`.`days` DAY);[/sql]
     
  3. Nachtvolk

    Nachtvolk Активный пользователь

    С нами с:
    24 фев 2011
    Сообщения:
    31
    Симпатии:
    0
    Всё отлично работает, спасибо.