За последние 24 часа нас посетили 54187 программистов и 1724 робота. Сейчас ищут 850 программистов ...

Сложный sql запрос к БД

Тема в разделе "PHP для новичков", создана пользователем greenzlat, 15 мар 2011.

  1. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Есть 2 таблицы:
    1 table:
    tab
    FIO

    2 table:
    tab
    Sum

    tab - табельный номер сотрудника
    FIO - ФИО сотрудника
    Sum - зарплата

    Нужно вывести все данные из 2 table чтобы еще и ФИО были написаны.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    SELECT * FROM 1table, 2table WHERE table1.tab = table2.tab
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    SELECT table2.Sum, table1.FIO FROM table2 LEFT JOIN table1 ON table2.tab = table1.tab WHERE table1.tab = 151651
     
  4. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    блин как у вас в голове такие запросы получаются вывести ;D
     
  5. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Invision
    это ещё простые запросы. самый сложный запрос, который мне пришлось составлять в последнее время:

    Таблицы: объявления, пользователи, таблица связей какой юзер какого пригласил (юзер-юзер).
    необходимо вывести первые 5 юзеров в порядке убывания, пригласивших максимальное количество друзей,
    которые имеют хотя бы по одному объявлению со статусом 2 (активное объявление).
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Invision
    Это ОЧЕНЬ ПРОСТОЙ запрос

    Gromo Выбрать из древовидной структуры "детей" второго уровня, имеющих золотой статус(галочка в бд), у которых прямой родитель(перый уровень от основания) имеет серебряный статус (другая галочка) и посчитать количество всех дальнейших детей этих выбранных ))))))
     
  7. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    ну началось, аха :D жесть))
     
  8. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    простой запрос - таблица JOIN-ится на саму себя с проверками. ничего сложного )))

    а вот тут уже сложнее. каким образом реализовано было дерево?
     
  9. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Вот я недавно почту пользовательскую делал, вот это я намучился =), хорошо tommyangelo подсказал
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Gromo да, там дважды джоин на себя же ))

    Дерево - именованные пути. Айдишки склеенные через точки. типа 125.58.56.654.658

    Расчет их конечно долгий, зато выборка через LIKE (CONCAT('125.58', '.%')) довольно быстро отрабатывает

    :)