SQL-запрос, чтобы заставить код работать для объединения трех таблиц

Мой код не работает, и я не знаю, как его исправить, чтобы он работал правильно. И да, Как заставить работать три таблицы sql? у меня не работал.

SELECT [id], 
review.[plot_name], 
submission.[sub_date],
[report_date], report.[critical_errors]
FROM ((review
INNER JOIN submission ON review.[id] = submission.[id])
INNER JOIN report ON [id] = report.[id])
WHERE [plot_name] = Scheme;

У вас есть экземпляры [id], которые не включают имя таблицы

NickW 06.04.2022 18:59

никогда не включайте «у меня не работает». в вопросе и всегда копируйте/вставляйте полное сообщение об ошибке. Также спрашивайте только тогда, когда вы искали это сообщение об ошибке. И вы должны указать, какую систему базы данных вы используете. SQL ведет себя по-разному в разных системах, таких как MSSQL, MySQL, MariadDB, PostgreSQL, SQLite и т. д.

Luuk 06.04.2022 19:02

Другими словами, шаблон полезного вопроса SQL обычно состоит в том, чтобы предоставить Create Table утверждения вовлеченных, а именно «проверить», «отправить» и «отчет» в вашем случае, а также несколько строк тестовых данных, представленных в виде Insert Into утверждений, которые читатели могут работать, чтобы помочь вам, и описание ожидаемого результата.

Stefan Wuebbe 06.04.2022 19:29
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
5
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Как сказал @NickW, вам нужно будет сообщить СУРБД, какой [ID] в вашем выражении принадлежит какой таблице, то же самое для любых других имен столбцов, которые могут встречаться более чем в одной из задействованных таблиц. И вы можете сообщить нам марку и модель вашей СУБД, добавив, например, тег, например postgresql-9.3. И, как указал @Luuk, вы можете объяснить, что именно означает «не работает» в вашем сценарии, например, описав желаемый результат, когда вы запускаете свой оператор для определенных строк тестовых данных.

Ваша попытка до сих пор выглядит так, как будто вы, возможно, хотите что-то вроде этого:

CREATE TABLE review (reviewID Int, plot_name Char(20));
CREATE TABLE submission (submissionID Int, reviewID Int, sub_date Date);
CREATE TABLE report (reportID Int, reviewID Int, report_date Date, critical_errors Char(20));

INSERT INTO review VALUES (1, 'foo'), (2, 'bar'), (3, 'Scheme'),  (4, 'Scheme');
INSERT INTO submission VALUES (1, 3, Cast('2022, 2, 25' as Date));
INSERT INTO report VALUES (2, 3, Cast('2022-3-25' as Date), 'not so critical');

SELECT
    review.reviewID, review.plot_name,
    submission.sub_date, 
    report.report_date, report.critical_errors 
FROM review
    INNER JOIN submission ON review.reviewID = submission.reviewID 
    INNER JOIN report ON review.reviewID = report.reviewID
WHERE review.plot_name = 'Scheme';

Ожидаемый результат:

|ReviewId  | plot_name | sub_date | report_date | critical_errors |
|----------|-----------|----------|-------------|-----------------|
|   3      |'Scheme'   |02/25/2022| 03/25/2022  |'not so critical'|

NB: ReviewID № 4 отсутствует в результате, потому что в таблицах Inner Join намеренно нет совпадений первичного и внешнего ключа.

Каким-то образом моя попытка форматирования «Ожидаемый результат» выглядит хорошо для меня в режиме редактирования, но ужасно плохо в режиме просмотра?

Stefan Wuebbe 06.04.2022 22:09

Я также попытался обновить ожидаемый результат, но по той причине, что я, кажется, не понимаю, он не будет отображаться в моде View, поэтому вместо этого я сделал это как код. По крайней мере, это выглядит немного красивее

Ergest Basha 07.04.2022 10:57

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