这个问题在这里已经有答案了:
sql:intersect语法错误(6个答案)
10个月前关门了。
我正在尝试解决这个问题:
'从电台查询以元音(即a、e、i、o和u)作为首字母和末字母的城市名称列表。您的结果不能包含重复项。'
我试着用intersect操作符来解析它,如下所示:
SELECT CITY
FROM STATION
WHERE LEFT(CITY, 1) = 'A' OR LEFT(CITY, 1) = 'O'
OR LEFT(CITY, 1) = 'E' OR LEFT(CITY, 1) = 'I' OR
LEFT (CITY, 1) OR LEFT(CITY, 1) = 'U'
INTERSECT
SELECT CITY
FROM STATION
WHERE RIGHT(CITY, 1) = 'A' OR RIGHT(CITY, 1) = 'O'
OR RIGHT(CITY, 1) = 'E' OR RIGHT(CITY, 1) = 'I' OR
RIGHT (CITY, 1) OR RIGHT(CITY, 1) = 'U';
但我收到以下错误消息:
ERROR 1064 (42000) at line 1: 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 'INTERSECT
SELECT CITY
FROM STATION
WHERE RIGHT(CITY, 1) = 'A' OR RIGHT(CITY, 1)' at line
我做错了什么?还有什么方法可以解决这个问题?
2条答案
按热度按时间ruoxqz4g1#
查询列表
CITY
名字来自STATION
它们的第一个和最后一个字符都是元音。你好像把事情搞得太复杂了。据我所知,你只需要
where
一次过滤表的子句-正则表达式在这方面很方便:模式描述以wovel开头和结尾的字符串(
^
表示字符串的开头,并且$
是结束)。如果你有副本
city
在表中,然后使用select distinct city from ...
相反。如果你想用
left()
以及right()
:kxeu7u2r2#
你可以用
join
: