![](/img/trans.png)
[英]insert by selecting values from two columns into a column from the same table
[英]Selecting values from two columns and concatenating them into a column on a different table
我对SQL有点陌生,并尝试按照上面的描述进行操作。 这是我的查询:
SELECT
CONCAT (first_name, last_name) INTO full_name_variable
FROM
table_1
WHERE
phone_number = new.number;
它似乎不起作用。 但是,当我使用AS
使用此查询时,它可以工作。 像这样:
SELECT
CONCAT (first_name, last_name) AS full_name_variable
FROM
table_1
WHERE
phone_number = new.number;
我非常感谢您的帮助
改用显式join
SELECT CONCAT (first_name, last_name) INTO full_name_variable
FROM table_1 t1
INNER JOIN tabke_2 t1
ON t1.phone_number = t2.number;
或者您可以使用INSRET INTO
语句
INSERT INTO full_name_variable (full_name)
SELECT CONCAT (first_name, last_name)
FROM table_1 t1
INNER JOIN tabke_2 t1
ON t1.phone_number = t2.number;
您需要了解变量和列之间的区别。
INTO
将值加载到变量中,该变量在您使用的编程块中可用。 是相同的:=
。 因此,您的第一个版本与:
SELECT full_name_variable := CONCAT(first_name, last_name)
FROM table_1
WHERE phone_number = new.number;
AS
(实际上是可选的),在结果集中命名一列。
您的代码似乎是在触发器中,通常不会返回结果集。 我的猜测是您想要INTO
或:=
。 我更喜欢:=
因为我发现它对设置变量更直观。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.