За последние 24 часа нас посетили 20516 программистов и 1130 роботов. Сейчас ищет 661 программист ...

Запрос из нескольких таблиц

Тема в разделе "Laravel", создана пользователем Reken, 29 ноя 2022.

Метки:
  1. Reken

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

    С нами с:
    4 июл 2019
    Сообщения:
    198
    Симпатии:
    5
    Подскажите пожалуйста, не могу сообразить как сделать запрос...
    Проектирую БД. Создал табличку с пользователями, допустим такую:
    id | name | password | role
    Так же создал пять таблиц со значениями (названия столбиков у всех таблиц одинаковые), так же количество строк в каждой таблице одинаковое, и всегда будет одинаковое...
    id | title | field1 | field2 | field3
    Создал пять связующих таблиц. Для осуществления связи многое ко многими, между таблицей с пользователями и таблицами со значениями...
    id | user_id | values_id # И таких пять таблиц

    И допустим нужно получить значения (field1, field2, field3) для определенного пользователя, сразу из трех таблиц со значениями. Только не просто получить, а суммировать их построчно (каждую строчку) из трех таблиц...
    Сырым запросом пробовать? Или как лучше?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    Или чето недопонял или одно из двух....

    1) зачем 5 одинаковых таблиц? А если пользователей тыщи и миллионны? столько же таблиц плодить???
    2) вы точно не путаете понятие - строки, столбцы, таблицы?

    обычно таблица с данными одна - привязка к пользователю по user_id
     
  3. JohnWarner

    JohnWarner Новичок

    С нами с:
    16 ноя 2022
    Сообщения:
    5
    Симпатии:
    0
    Если я верно понял ТСа, ему надо что-то типа этого:
    PHP:
    1. $sql = "SELECT u.user_id, u.username
    2.    FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
    3.    WHERE aa.forum_id = $forum_id
    4.        AND aa.auth_mod = " . TRUE . "
    5.        AND g.group_single_user = 1
    6.        AND ug.group_id = aa.group_id
    7.        AND g.group_id = aa.group_id
    8.        AND u.user_id = ug.user_id
    9.    GROUP BY u.user_id, u.username
    10.    ORDER BY u.user_id";
    В данном случае, выдрано из древнего phpBB2.