#mysql #subquery #project #union
#mysql #подзапрос #проект #объединение
Вопрос:
Я реализую проект, который поднимает мне следующие таблицы:
Для большей конкретности: первая таблица:
‘docs’ => doc_id, doc_type_type_id, clients_cli_id,
где doc_type_type_id
- счета-фактуры
- справочное руководство
Вторая таблица:
‘client’ => cli_id
Что я пытаюсь сделать, так это присоединиться к клиенту с документом, в котором мой запрос:
Показать клиенту его счет-фактуру и справочное руководство:
SELECT c.cli_name, d1.doc_file as f1 , d2.doc_file as f2 FROM clients c INNER JOIN docs d1 ON d1.client_cli_id = c.cli_id INNER JOIN docs d2 ON d2.client_cli_id = c.cli_id WHERE d1.doc_fec=d2.doc_fec
Комментарии:
1. SO — это не школа или услуга обучения, вам нужно изучить основы самостоятельно. Затем опубликуйте свой код, если вы не можете заставить его работать, и мы поможем вам это исправить. Вы можете узнать о соединениях SQL здесь: blog.codinghorror.com/a-visual-explanation-of-sql-joins
Ответ №1:
select * from docs
inner join client on docs.clients_cli_id = client.cli_id
where doc_type_type_id = 1
Что-то в этом формате должно предоставить вам все счета, присоединенные к клиенту.
Комментарии:
1. Вы могли бы получить результат, подобный тому, который был у клиента в той же записи, связанной с doc_type_type_id = 1 и doc_type_type_id = 2
2. Если вам нужны оба doc_types , тогда вам просто нужно исключить «где doc_type_type_id = 1» из запроса.
3. Как объяснить? Я уверен, что мой английский плохой. Что происходит, так это то, что параллельно отображаются счета-фактуры, накладные и клиент.