За последние 24 часа нас посетили 19486 программистов и 1604 робота. Сейчас ищут 939 программистов ...

Подскажите, как можно реализовать...

Тема в разделе "Вопросы от блондинок", создана пользователем Hash, 21 июн 2008.

  1. Hash

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

    С нами с:
    21 июн 2008
    Сообщения:
    14
    Симпатии:
    0
    Подскажите, как можно реализовать, выводится список с данными из таблицы, а из соседней таблицы извлекаются данные, согласноодному из данных первой таблицы, например:
    Максим Иванов паспорт 1234 123456, из второй таблицы извлекаются данные, в которых тоже фигурирует 1234 123456.
    Соори за тупой и невнятный вопрос, но у самого тяму нехватает((((
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    [sql]SELECT * FROM table WHERE row="1234 123456";[/sql]
     
  3. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    см. JOIN
     
  4. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    WHERE ... AND table1.number = table2.number
     
  5. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    S.t.A.M.

    по-сути тот де JOIN
     
  6. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    DarkElf
    Я не спорю, просто я с JOIN'ом так и не разобрался (((
    Поэтому у меня огромный движок написан вообще без единого JOIN'а.
     
  7. mclaud

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

    С нами с:
    15 фев 2007
    Сообщения:
    97
    Симпатии:
    0
    Адрес:
    Одесса
    Никому не говори!
    Перекрестное объединение:
    [sql]SELECT * FROM `table1`, `table2` WHERE `table1`.`id` = `table2`.`id`[/sql]
    И то же самое через JOIN:
    [sql]SELECT * FROM `table1` JOIN `table2` ON (`table1`.`id` = `table2`.`id`)[/sql]
    А теперь то же самое, но чуть короче, при условии что в обоих таблицах поля по которым происходит объединение называются одинаково (в даном случае id) :
    [sql]SELECT * FROM `table1` JOIN `table2` USING (`id`)[/sql]
     
  8. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Спасибо, с этим разобрались, осталось понять конструкции с LEFT RIGHT )))
     
  9. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    S.t.A.M.
    При перекрестном объединении записи выбираются в случае, если они есть в обеих таблицах.
    При LEFT JOIN выбираются все значения из левой, вне зависимости, есть ли эти значения в правой.
    При RIGHT JOIN тоже самое, что и лефт, просто правая таблица управляющая, а не левая.
    http://www.codinghorror.com/blog/archives/000976.html
     
  10. mclaud

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

    С нами с:
    15 фев 2007
    Сообщения:
    97
    Симпатии:
    0
    Адрес:
    Одесса
    Отличный пример, на кругах Эйлера!
     
  11. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Да мне тоже понравилось! )))