9°C
завтра: 12°C
Погода в Перми
9°C
утром11°C
днем17°C
завтра12°C
Подробно
 92,01
−0.1180
Курс USD ЦБ РФна 27 апреля
92,0134
−0.1180
 98,72
+0.0108
Курс EUR ЦБ РФна 27 апреля
98,7187
+0.0108
  • Проблема с написанием 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

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

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

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

Модератор: