Вопрос:

SQL (phpMyAdmin) неожиданная точка в операторе ON

sql phpmyadmin unexpected-token

6 просмотра

1 ответ

345 Репутация автора

Я создал представление в моей базе данных под названием « люди », которое извлекает данные с использованием трех функций, называемых « isUserVerified », « hasUserPicture » и « userHobbies », из двух таблиц с именами « users » и « user_hobbies »:

SELECT 
    `people`.`users`.`id` AS `id`,
    `isUserVerified`(`people`.`users`.`id`) AS `verification`,
    `hasUserPicture`(`people`.`users`.`id`) AS `profile_picture`,
    `userHobbies`(`people`.`user_hobbies`.`user_id`) AS `hobbies` 
FROM 
    (`people`.`users` INNER JOIN `people`.`user_hobbies`) 
ON 
    `people`.`user_hobbies`.`user_id` = `people`.`user_hobbies`.`user_id` 
WHERE 
    `people`.`user_hobbies`.`user_id` = `people`.`user_hobbies`.`user_id` 

phpMyAdmin жалуется на неожиданную точку (последнюю в следующих строках (перед user_id):

ON 
    `people`.`user_hobbies`.`user_id` =

и неожиданный токен перед = в тех же строках выше. Является ли JOIN правильным способом извлечения данных из двух таблиц, учитывая, что мое представление использует функцию, которая подключается к соответствующим таблицам? Если да, может кто-нибудь сказать мне, что не так с моим SQL. Спасибо

Автор: Dino Источник Размещён: 11.08.2019 08:08

Ответы (1)


0 плюса

48610 Репутация автора

Ваш синтаксис неверен; FROMпункт не должен быть заключен в скобки. Кроме того, ваше JOINсостояние должно быть

`people`.`user_hobbies`.`user_id` = `people`.`users`.`id`

и ваше WHEREсостояние избыточно, так как оно совпадает с JOINусловием. Попробуйте это вместо этого:

SELECT 
    `people`.`users`.`id` AS `id`,
    `isUserVerified`(`people`.`users`.`id`) AS `verification`,
    `hasUserPicture`(`people`.`users`.`id`) AS `profile_picture`,
    `userHobbies`(`people`.`user_hobbies`.`user_id`) AS `hobbies` 
FROM 
    `people`.`users` 
INNER JOIN
    `people`.`user_hobbies`
ON 
    `people`.`user_hobbies`.`user_id` = `people`.`users`.`id` 
Автор: Nick Размещён: 11.08.2019 08:12
Вопросы из категории :
32x32