За последние 24 часа нас посетили 22143 программиста и 1152 робота. Сейчас ищут 705 программистов ...

Помогите составить sql запрос

Тема в разделе "MSSQL", создана пользователем Akarapido, 8 авг 2013.

  1. Akarapido

    Akarapido Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    3
    Симпатии:
    0
    есть две таблицы tab1, tab2.
    tab1
    Код (Text):
    1.  
    2. |id_user|username|
    3. |   1   | Ivan   |
    4. |   2   |Roman   |
    5. |   3   |Sveta   |
    6. |   4   | Ira    |
    tab2
    Код (Text):
    1. |id_text| id_redaktor | id_autor |
    2. |  T-01 |     1       |     2    |
    3. |  T-02 |     3       |     4    |
    Результат запроса должен быть
    Код (Text):
    1. |id_text| id_redaktor | id_autor |
    2. |  T-01 |    Ivan     |  Roman   |
    3. |  T-02 |   Sveta     |    Ira   |
     
  2. shelestov

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

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Завязать join-ом 2 раза таблицу tab1 к tab2.
    Cвзять tab1.id_user с tab2.id_redactor и tab1.id_user c tab2.id_author.
     
  3. Akarapido

    Akarapido Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    3
    Симпатии:
    0
    Код (Text):
    1. SELECT tab2.*, tab1.username FROM tab2 INNER JOIN tab1 ON tab1.id_user=tab2.id_redaktor
    Так добавляется столбец usename с данными как в иском столбце name_redaktor
    а если так
    Код (Text):
    1. SELECT tab2.*, tab1.username FROM tab2 INNER JOIN tab1 ON tab1.id_user=tab2.id_autor
    добавляется столбец usename с данными как в иском столбце name_autor

    Как же соединить в одину таблицу
     
  4. shelestov

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

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Код (Text):
    1. SELECT tab2.*, t1.username as redaktor_name, t2.username as autor_name FROM tab2 JOIN tab1 as t1 ON t1.id_user=tab2.id_redaktor JOIN tab1 as t2 ON t2.id_user=tab2.id_autor
    JOIN-ов можно сколько угодно делать.

    Переименуй autor. Сложно писать )))
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    эх, назови нормально таблицы. что за шифровка!
    ты можешь джойнить одну и ту же таблицу сколько угодно раз. только алиасы разные давай
    Код (Text):
    1.  
    2. ...
    3. INNER JOIN xxx AS x1 ON x1.id=...
    4. INNER JOIN xxx AS x2 ON x2.id=...
    5. INNER JOIN xxx AS x3 ON x3.id=...
    6. INNER JOIN xxx AS x4 ON x4.id=...
    Добавлено спустя 55 секунд:
    shelestov, ну вот, вместо помощи ты сделал все за ученика ))) все пропало!
     
  6. shelestov

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

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Редко так делаю, кстати. :)
     
  7. Akarapido

    Akarapido Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    3
    Симпатии:
    0
    Надеюсь своим вопросом и вашим ответом мы помогли не только мне
     
  8. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    это врядли! в историю ты точно не попадешь.