我已经创建了两个表A和B,如下所示:
A B
Name Name
Burger Avocado
Beef Crab
Potato. Pizza
我想创建一个列表,仅使用1条语句返回长度为5的2个表中的名称。
我的代码:
SELECT A.Name,B.Name
INTO LIST
FROM A,B
WHERE LENGTH(A.Name)>5 AND LENGTH(B.Name)>5;
错误:未声明变量LIST。
我的问题是我如何声明LIST,但仍然只使用1条语句。
谢谢
答案 0 :(得分:1)
MySQL不支持SELECT INTO
。如果已经创建了表LIST,我认为您需要的是:
INSERT INTO LIST
SELECT Name FROM A WHERE LENGTH(Name) > 5
UNION
SELECT Name FROM B WHERE LENGTH(Name) > 5;
如果表LIST还不存在,则可以执行以下操作:
CREATE TABLE LIST
AS
SELECT Name FROM A WHERE LENGTH(Name) > 5
UNION
SELECT Name FROM B WHERE LENGTH(Name) > 5;
答案 1 :(得分:1)
您可以尝试运行此查询:
CREATE TEMPORARY TABLE LIST
SELECT Name FROM A WHERE LENGTH(Name) > 5
UNION
SELECT Name FROM B WHERE LENGTH(Name) > 5
;
此查询将从收到的查询结果中创建临时表LIST
。
如果您已经有表LIST
,并且需要在表中插入数据-请运行下一个查询:
INSERT INTO LIST
SELECT Name FROM A WHERE LENGTH(Name) > 5
UNION
SELECT Name FROM B WHERE LENGTH(Name) > 5
;
顺便说一句
返回2个长度> 5的表的名称
为此,您必须使用UNION
,否则结果将如下所示:
SELECT A.Name, B.Name
FROM A,B
WHERE LENGTH(A.Name)>5 AND LENGTH(B.Name)>5;
+--------+---------+
| Name | Name |
+--------+---------+
| Burger | Avocado |
| Potato | Avocado |
+--------+---------+
但是您似乎需要以下内容:
select * from LIST;
+---------+
| Name |
+---------+
| Burger |
| Potato |
| Avocado |
+---------+