从两列中选择值并将它们连接到另一个表上的列中

时间:2018-05-04 10:28:20

标签: mysql sql select mysql-workbench

我对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;

我非常感谢帮助

2 个答案:

答案 0 :(得分:0)

明确使用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;

答案 1 :(得分:0)

您需要了解变量之间的区别。

INTO将值加载到变量中,该变量在您正在使用的编程块中可用。它与:=相同。所以你的第一个版本与:

相同
SELECT full_name_variable := CONCAT(first_name, last_name)
FROM table_1
WHERE phone_number = new.number;

AS(实际上是可选的)命名结果集中的列。

您的代码似乎处于触发器中,其中通常不会返回结果集。我的猜测是你需要INTO:=。我更喜欢:=因为我觉得设置变量更直观。