MySQL基本查询
我得到了一个结果,上面写着全名和设施名。 这里的设施名称包括网球场1、网球场2、壁球场、羽毛球和乒乓球 我现在只想通过网球场进行过滤和演示 我试着添加 其中设施名称我喜欢“%network Court% 但得到的错误是: 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第15行“ILIKE”%netsing%”附近要使用的正确语法MySQL基本查询,mysql,sql,Mysql,Sql,我得到了一个结果,上面写着全名和设施名。 这里的设施名称包括网球场1、网球场2、壁球场、羽毛球和乒乓球 我现在只想通过网球场进行过滤和演示 我试着添加 其中设施名称我喜欢“%network Court% 但得到的错误是: 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第15行“ILIKE”%netsing%”附近要使用的正确语法 SELECT DISTINCT(CONCAT(z.firstname,' ', z.surname)) AS full_name
SELECT
DISTINCT(CONCAT(z.firstname,' ', z.surname)) AS full_name,
facilities.name AS facility_name
FROM
(SELECT members.memid,
bookings.facid,
members.firstname,
members.surname
FROM Members AS members
RIGHT JOIN Bookings AS bookings
ON members.memid =bookings.memid) z
RIGHT JOIN Facilities as facilities
ON facilities.facid = z.facid
WHERE facility_name LIKE 'Tennis Court%'
以下是该表的链接。
错误:1054-where子句中的未知列“facility_name”。我只是想告诉你。有两个设施名称“网球场1”和“网球场2”在查询中替换ILIKE TO LIKE,并在distinct之后删除括号,因为distinct不是一个函数顺便说一句,您的查询在功能上似乎与:
SELECT DISTINCT CONCAT_WS(' ',m.firstname,m.surname) full_name
, f.name facility_name
FROM facilities f
JOIN bookings b
ON b.facid = f.facid
LEFT
JOIN members m
ON m.memid = b.memid
WHERE f.name LIKE 'Tennis Court%'
如果我错了,请看非常感谢
我用facid而不是facility_名称
守则如下:
SELECT
DISTINCT CONCAT(z.firstname,' ', z.surname) AS full_name,
facilities.name as facility_name
FROM
(SELECT members.memid,
bookings.facid,
members.firstname,
members.surname
FROM Members AS members
RIGHT JOIN Bookings AS bookings
ON members.memid =bookings.memid) z
RIGHT JOIN Facilities as facilities
ON facilities.facid = z.facid
WHERE facilities.facid=0 OR facilities.facid=1
请注意,DISTINCT不是一个函数,并且从来没有人使用右连接。而且,这不是生成该查询的查询error@Strawberry从SELECT members.memid、bookings.facid、members.firstname中选择DISTINCT CONCATz.firstname“”、z.name作为全名、facility.name作为facility\u名称,members.lasname FROM members AS members RIGHT JOIN Bookings AS Bookings ON members.memid z RIGHT JOIN Facilities AS Facilities ON Facilities.facid=z.facid WHERE facility_name类似“网球场%”这给了我一个错误:1054-WHERE子句中的未知列“facility_name”。我只是想告诉你。共有两个设施名称“网球场1”和“网球场2”。如果使用完整值作为筛选器,则使用直接比较=而不是LIKE运算符。其中设施名称='网球场'。请根据Himanshu编辑您的问题。注意。从SELECT members.memid、bookings.facid、members.firstname中选择DISTINCT CONCATz.firstname“”、z.name作为全名、facility.name作为facility\u名称,members.lasname FROM members AS members RIGHT JOIN Bookings AS Bookings ON members.memid z RIGHT JOIN Facilities AS Facilities ON Facilities.facid=z.facid WHERE facility_name类似“网球场%”这给了我一个错误:1054-WHERE子句中的未知列“facility_name”。我只是想告诉你。有两个设施名称“网球场1”和“网球场2”