SQL-запрос не дает результатов

Что я здесь делаю неправильно? Кто-нибудь может помочь?

1. Используйте некоррелированный подзапрос, найдите имена сотрудников, которые не работают ни над одним проектом.

Отвечать:

SELECT * 
FROM employee_name 
WHERE ID IN (SELECT employee_id FROM projectinfo 
             WHERE project IS NOT NULL);

2. Используйте коррелированный подзапрос, найдите имена сотрудников, которые не работают ни над одним проектом.

Отвечать:

  SELECT * 
  FROM employee_name
  WHERE EXISTS (SELECT * FROM project 
                WHERE project.employee_id = project_id 
                  AND projectinfo.project IS NOT NULL);
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете подать в суд на LEFT JOIN следующим образом для некоррелированного подзапроса следующим образом:

SELECT e.* FROM employee_name  E -- is employee_name a table? if no, then use proper table name
LEFT JOIN project P
ON E.ID = P.employee_id
WHERE P.project_id IS NULL;

Использование коррелированного подзапроса

SELECT * FROM employee_name E 
  WHERE NOT EXISTS (SELECT 1 FROM project p
  WHERE p.employee_id= e.employee_id);

Примечание. Я считаю, что запись о сотруднике недоступна в таблице project, если у сотрудника нет назначенного проекта.

Можно мне тоже так написать? SELECT * FROM сотрудников ГДЕ emp_name НЕ В (SELECT emp_name FROM сотрудников);

Fahima 11.12.2020 08:20

Это ничего не вернет. И лучше не использовать не в

Popeye 11.12.2020 08:21

Извините, что беспокою вас снова, используя подзапрос, как я могу найти имена сотрудников с самой высокой оценкой? Не могли бы вы рассказать мне? Я пытаюсь выучить. Я написал это: ВЫБЕРИТЕ имя, фамилию, job_id, зарплату ОТ сотрудников, ГДЕ ставка> ВСЕ (ВЫБЕРИТЕ ставку ОТ сотрудников)

Fahima 12.12.2020 07:53

@Fahima, во-первых, вы должны принять этот ответ, если он решил вашу проблему, а во-вторых, запрос, который вы использовали для сотрудника с самой высокой ставкой, верен, но вы хотели бы попробовать это: SELECT first_name,last_name, job_id, salary FROM employees WHERE rate = (SELECT max(rate) FROM employees)

Popeye 12.12.2020 14:27

Другие вопросы по теме