Nano Hash - криптовалюты, майнинг, программирование

ПРИСОЕДИНЯЙТЕСЬ К ЧЕТЫРЕМ ТАБЛИЦАМ в mysql. Ошибка в синтаксисе

Мне нужно объединить четыре таблицы в mysql.

Моя структура базы данных:

DROP DATABASE IF EXISTS db_applicant;

CREATE DATABASE db_applicant
  DEFAULT CHARACTER SET 'utf8'
  DEFAULT COLLATE 'utf8_unicode_ci';

USE db_applicant;

--
-- TABLE: PROFESSION
--
CREATE TABLE PROFESSION (
  PROFESSION_ID   INT         NOT NULL AUTO_INCREMENT,
  PROFESSION_NAME VARCHAR(50) NOT NULL,
  PRIMARY KEY (PROFESSION_ID)
);

--
-- TABLE: SUBJECT
--
CREATE TABLE SUBJECT (
  SUBJECT_ID   INT         NOT NULL AUTO_INCREMENT,
  SUBJECT_NAME VARCHAR(50) NOT NULL,
  PRIMARY KEY (SUBJECT_ID)
);

--
-- TABLE: APPLICANT
--
CREATE TABLE APPLICANT (
  APPLICANT_ID  INT         NOT NULL AUTO_INCREMENT,
  PROFESSION_ID INT         NOT NULL,
  LAST_NAME     VARCHAR(30) NOT NULL,
  FIRST_NAME    VARCHAR(30) NOT NULL,
  ENTRANCE_YEAR INT         NOT NULL,
  PRIMARY KEY (APPLICANT_ID),
  FOREIGN KEY (PROFESSION_ID) REFERENCES PROFESSION (PROFESSION_ID)
);

--
-- TABLE: APPLICANT_RESULT
--
CREATE TABLE APPLICANT_RESULT (
  APPLICANT_RESULT_ID INT NOT NULL AUTO_INCREMENT,
  APPLICANT_ID        INT NOT NULL,
  SUBJECT_ID          INT NOT NULL,
  MARK                INT,
  PRIMARY KEY (APPLICANT_RESULT_ID),
  FOREIGN KEY (SUBJECT_ID)
  REFERENCES SUBJECT (SUBJECT_ID),
  FOREIGN KEY (APPLICANT_ID)
  REFERENCES APPLICANT (APPLICANT_ID)
);


--
-- TABLE: SPECIALITY_SUBJECT
--
CREATE TABLE SPECIALITY_SUBJECT (
  SP_SB_ID      INT NOT NULL AUTO_INCREMENT,
  PROFESSION_ID INT NOT NULL,
  SUBJECT_ID    INT NOT NULL,
  PRIMARY KEY (SP_SB_ID),
  FOREIGN KEY (PROFESSION_ID)
  REFERENCES PROFESSION (PROFESSION_ID),
  FOREIGN KEY (PROFESSION_ID)
  REFERENCES PROFESSION (PROFESSION_ID),
  FOREIGN KEY (SUBJECT_ID)
  REFERENCES SUBJECT (SUBJECT_ID)
);

Мне нужно, чтобы вывод был примерно таким:

first_name (этот столбец из таблицы соискателей), last_name (этот столбец из таблицы соискателей), entry_year (этот столбец из таблицы соискателей), профессия_название (этот столбец из таблицы профессий), subject_name (этот столбец из таблицы соискателей), отметка (этот столбец из таблицы соискателей). таблица заявитель_результат).

Вы можете видеть, что у меня есть связанные поля. Но мне нужен сильный ВНУТРЕННИЙ ЗАПРОС. Для этого я создаю новую таблицу со структурой:

CREATE TABLE APP(
  ALL_ID              INT NOT NULL AUTO_INCREMENT,
  APPLICANT_ID        INT NOT NULL,
  SUBJECT_ID          INT NOT NULL,
  PROFESSION_ID       INT NOT NULL,
  APPLICANT_RESULT_ID INT NOT NULL,
  PRIMARY KEY (ALL_ID),
  FOREIGN KEY (SUBJECT_ID)
  REFERENCES SUBJECT (SUBJECT_ID),
  FOREIGN KEY (APPLICANT_ID)
  REFERENCES APPLICANT (APPLICANT_ID),
  FOREIGN KEY (PROFESSION_ID)
  REFERENCES PROFESSION (PROFESSION_ID),
  FOREIGN KEY (APPLICANT_RESULT_ID)
  REFERENCES APPLICANT_RESULT (APPLICANT_RESULT_ID)
);

И мой внутренний:

SELECT ap.ALL_ID, a.FIRST_NAME, a.LAST_NAME,
       a.ENTRANCE_YEAR, p.PROFESSION_NAME s.SUBJECT_NAME, ar.MARK
FROM app ap
JOIN (applicant a, profession p, subject s, applicant_result ar)
 ON ap.APPLICANT_ID = a.APPLICANT_ID
AND ap.SUBJECT_ID = s.SUBJECT_ID
AND ap.PROFESSION_ID = p.PROFESSION_ID
AND ap.APPLICANT_RESULT_ID = ar.APPLICANT_RESULT_ID;

Но у меня ошибка:

[2015-09-19 10:08:52] [42000][1064] У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «.SUBJECT_NAME, ar.MARK FROM app ap JOIN (заявитель a, профессия p, предмет s, a» в строке 1

19.09.2015

  • вам не хватает запятой. 19.09.2015

Ответы:


1

Вам не кажется, что здесь отсутствует запятая ',' в операторе select перед s.SUBJECT_NAME?

SELECT ap.ALL_ID, a.FIRST_NAME, a.LAST_NAME,
       a.ENTRANCE_YEAR, p.PROFESSION_NAME s.SUBJECT_NAME, ar.MARK
19.09.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..