Я пытаюсь создать трехстороннее соединение между отметками, сообщениями и голосами. Я попытался смоделировать the other posts по этому конкретному запросу, но это не похоже на работу:Ошибка связи Mysql 3 way
Ошибка
[Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN votes ON votes.messageId = messages.id ORDER BY timestamp DESC' at line 1]
Вот мой запрос:
var query = ([
'SELECT * FROM marks',
'LEFT JOIN messages',
'ON marks.messageId = messages.id',
'WHERE marks.x between ? AND ?',
'AND marks.y between ? AND ?',
'LEFT JOIN votes',
'ON votes.messageId = messages.id',
'ORDER BY timestamp DESC'
]).join(' ');
Схема
CREATE TABLE marks (
id int(5) AUTO_INCREMENT,
PRIMARY KEY (id),
x float(10, 6),
y float(10, 6),
z float(10, 6),
timestamp timestamp DEFAULT CURRENT_TIMESTAMP,
messageId int(5),
FOREIGN KEY (messageId) REFERENCES messages(id),
userToken VARCHAR(255),
FOREIGN KEY (userToken) REFERENCES users(token)
);
CREATE TABLE messages (
id int(5) AUTO_INCREMENT,
PRIMARY KEY (id),
messageString text,
score int(5) DEFAULT 0
);
CREATE TABLE votes (
id int(5) AUTO_INCREMENT,
PRIMARY KEY(id),
userToken VARCHAR(255),
FOREIGN KEY (userToken) REFERENCES users(token),
messageId int(5),
FOREIGN KEY (messageId) REFERENCES messages(id)
);
ГДЕ должен быть после того, как все стыки. –