SQL (phpMyAdmin) ON 语句中的意外点
SQL (phpMyAdmin) unexpected dot in ON statement
我在我的数据库中创建了一个名为“people”的视图,它使用名为“isUserVerified”、“hasUserPicture' 和 'userHobbies' 来自两个 table 叫做 '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` =
以及上面同一行中 = 之前的意外标记。考虑到我的视图使用连接到相关 table 的函数,JOIN 是否是从两个 table 检索数据的正确方法?如果是,谁能告诉我我的 SQL 出了什么问题。
谢谢
您的语法不正确; FROM
子句不应括在括号中。此外,您的 JOIN
条件可能应该是
`people`.`user_hobbies`.`user_id` = `people`.`users`.`id`
并且您的 WHERE
条件是多余的,因为它与 JOIN
条件相同。试试这个(请注意,我为 table 名称添加了别名以简化查询):
SELECT
`u`.`id` AS `id`,
`isUserVerified`(`u`.`id`) AS `verification`,
`hasUserPicture`(`u`) AS `profile_picture`,
`userHobbies`(`h`.`user_id`) AS `hobbies`
FROM
`people`.`users` u
INNER JOIN
`people`.`user_hobbies` h
ON
`h`.`user_id` = `u`.`id`
我在我的数据库中创建了一个名为“people”的视图,它使用名为“isUserVerified”、“hasUserPicture' 和 'userHobbies' 来自两个 table 叫做 '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` =
以及上面同一行中 = 之前的意外标记。考虑到我的视图使用连接到相关 table 的函数,JOIN 是否是从两个 table 检索数据的正确方法?如果是,谁能告诉我我的 SQL 出了什么问题。 谢谢
您的语法不正确; FROM
子句不应括在括号中。此外,您的 JOIN
条件可能应该是
`people`.`user_hobbies`.`user_id` = `people`.`users`.`id`
并且您的 WHERE
条件是多余的,因为它与 JOIN
条件相同。试试这个(请注意,我为 table 名称添加了别名以简化查询):
SELECT
`u`.`id` AS `id`,
`isUserVerified`(`u`.`id`) AS `verification`,
`hasUserPicture`(`u`) AS `profile_picture`,
`userHobbies`(`h`.`user_id`) AS `hobbies`
FROM
`people`.`users` u
INNER JOIN
`people`.`user_hobbies` h
ON
`h`.`user_id` = `u`.`id`