Погода: 10 °C
07.109...11пасмурно, без осадков
08.105...9пасмурно, без осадков
  • Проблема с написанием SQL-запроса.
    Ситуация следующая. Есть две таблицы, в одной фамилии людей и коды отделов, где они работают,
    а в другой коды этих самых отделов (назначается счетчиком) и названия отделов.
    Нужен запрос на выборку информации обо ВСЕХ сотрудниках, то есть требуется наличие в результате выборки данных даже о тех людях, у кого номер отдела не задан (равен нулю по умолчанию).

    Делаю так:

    SELECT staff.name, department.name
    FROM staff, department
    WHERE staff.department_code = department.id

    Однако, в результат выборки такого запроса не входит информация людей, у которых не указан номер отдела. Можно, конечно, во второй таблице на определенный id повесить значение department.name как "не указан", но это как-то уж совсем тупо.

  • > во второй таблице на определенный id повесить значение department.name как "не указан", но это как-то уж совсем тупо.
    Это как раз было бы правильнее всего.
    Но уж если очень не хочется, то
    create table TAB1
    (id_dep integer, stname char(N1), depname char(N2))

    здесь N1- размер staff.name, N2-sizeof dep.name

    insert into TAB1
    select department_code, name from staff

    update TAB1 a
    set depname=(select name from department where id=a.department_code)

  • не понял проблемы:

    SELECT staff.name, department.name
    FROM staff LEFT JOIN department on (staff.department_code = department.id)
    // если отдела нет, то department.name будет равен NULL

    или я чего то не понял в вопросе?

Записей на странице:

Перейти в форум

Модератор: