SQL запрос выборка из 2х таблиц?

Здравствуйте люди добрые !

У меня вопрос абстрактного содержания, уж давно не трогал SQL но мне задали вопрос я на него ответил и теперь мнюха что обо мне подумали.

К примеру имеются 2 таблицы:

1Таблица
id , name

2Таблица
worker_id, date, value

Необходимо выбрать работников которые не получили зарплату в указанном месяце/дате.

Собственно что я ответил:
SELECT id name FROM table1 LEFT JOIN b as (SELECT worker_id date value FROM table2 WHERE data = 'интересующая дата' ) ON table1.id = b.worker_id WHERE date = 'null'

Ну и так как не совсем был уверен и запрос составил так по отголоскам памяти, добавил:
По логике вещей, запрос должен вернуть поля id и name, тех сотрудников у которых после присоединения виртуальной таблицы b полученной в результате выполнения запроса, поле date имеет значение NULL.

Имеет ли место жить мое рассуждение в SQL мире?)
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Во первых - всегда форматируйте код, и вам легче, и ошибок меньше, и людям приятно смотреть...
SELECT id name // выполнится, но не так как задумано, не хватает запятых
FROM table1 
LEFT JOIN b as // здесь все совсем плохо
(  
           SELECT worker_id date value //тут уже даже не выполнится
           FROM table2 
           WHERE data = 'интересующая дата'  //date же!
) 
ON table1.id = b.worker_id //могло бы даже работать, но выше куча ошибок
WHERE date = 'null' // так работать не будет. date IS NULL будет, но у вас вроде нужно value проверять?

Кроме прочего - тут должен был быть просто джоин 2 таблиц, без всяких танцев, ну и дата судя по всему должна быть в интервале, а не одно число, хотя тут уже не совсем ясно что там вообще и как хранится. Так же имена полей надо обрамлять `обратными кавычками`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы