Изучение SQL: запрос строк в таблицах различий на основе заданного значения столбца - PullRequest
0 голосов
/ 06 февраля 2019

Я делаю сторонний проект, чтобы помочь мне выучить SQL.

У меня есть две разные таблицы:

computers
+------------------+-----------+------+-----+---------+-------+
│| Field            | Type      | Null | Key | Default | Extra |
│+------------------+-----------+------+-----+---------+-------+
│| serial_number    | char(25)  | NO   | PRI | NULL    |       |
│| operating_system | char(10)  | YES  |     | NULL    |       |
│| purchase_year    | int(4)    | YES  |     | NULL    |       |
│| assigned_to      | char(100) | YES  |     | NULL    |       |
│+------------------+-----------+------+-----+---------+-------+

employees
│+------------+-----------+------+-----+---------+-------+
│| Field      | Type      | Null | Key | Default | Extra |
│+------------+-----------+------+-----+---------+-------+
│| email      | char(100) | NO   | PRI | NULL    |       |
│| first_name | char(25)  | NO   |     | NULL    |       |
│| last_name  | char(25)  | NO   |     | NULL    |       |
│| office     | char(5)   | NO   |     | NULL    |       |
│| assigned   | char(25)  | YES  |     | NULL    |       |
│+------------+-----------+------+-----+---------+-------+

В обеих есть несколько записей во время тестирования, но впытаясь написать функцию поиска по электронной почте сотрудника, я сталкиваюсь с проблемой с запросами SQL.Я пролистываю документацию, но плохо понимаю ее, и не могу найти хороший пример того, что я пытаюсь сделать, чтобы следовать ей.

Вот что я пытаюсь сделать сquery: Я хочу получить предоставленный адрес электронной почты для строки сотрудника, и если установлено поле "employee.assigned" (не ноль, думаете, используется EXIST?), то я также хочу захватить "computers.serial_number""строка, соответствующая этому значению столбца

Я могу делать то, что хочу, с двумя отдельными запросами, но я хочу посмотреть, возможно ли с помощью только одного очистить код и сделать запрос максимально быстрым,Любая дальнейшая документация, которую вы считаете целесообразной для этого проекта, также приветствуется!

1 Ответ

0 голосов
/ 07 февраля 2019

Для тех людей, которые находят это в Google:

То, что я нашел, сработало для моих нужд:

SELECT * FROM employees LEFT JOIN computers ON employees.assigned=computers.serial_number WHERE email='email@example.com';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...