[英]How do I use two columns in two tables to fill in another in Laravel 5?
[英]How do I loop through tables to fill columns in another table in sql?
所以我目前在SQL中有三个表:
Table One
姓名 | 代码 1 | 说明 1 | 代码 2 | 说明 2 |
---|---|---|---|---|
苹果 | ||||
鳄梨 | ||||
卷心菜 | ||||
奶酪 |
Level 1 Hierarchy
代码 | 描述 |
---|---|
一个... | 水果 |
C... | 食物 |
Level 2 Hierarchy
代码 | 描述 |
---|---|
阿普.. | 种子果实 |
AV.. | 核果 |
钙.. | 蔬菜 |
中.. | 乳制品 |
我正在尝试找到一个 SQL 查询来循环遍历两个层次结构表以填充table one
,如下所示。 我曾考虑过使用LIKE
,但有太多层次代码无法像这样通过它们手动 go。
姓名 | 代码 1 | 说明 1 | 代码 2 | 说明 2 |
---|---|---|---|---|
苹果 | 一个... | 水果 | 阿普.. | 种子果实 |
鳄梨 | 一个... | 水果 | AV.. | 核果 |
卷心菜 | C... | 食物 | 钙.. | 蔬菜 |
奶酪 | C... | 食物 | 中.. | 乳制品 |
我们有很多方法可以做到这一点,您也可以使用直接更新或使用 Cursor 如下 Select 语句并更新第二个表
DECLARE
@product_name VARCHAR(MAX),
@list_price DECIMAL;
DECLARE cursor_product CURSOR
FOR SELECT
product_name,
list_price
FROM
production.products;
OPEN cursor_product;
FETCH NEXT FROM cursor_product INTO
@product_name,
@list_price;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @product_name + CAST(@list_price AS varchar);
FETCH NEXT FROM cursor_product INTO
@product_name,
@list_price;
Update the table you want
END;
CLOSE cursor_product;
尝试这个:
/*
WITH
T1 (Name) AS
(
VALUES
'Apple'
, 'Avacado'
, 'Cabbage'
, 'Cheese'
)
, L1 (Code, Description) AS
(
VALUES
('A...', 'Fruit')
, ('C...', 'Food')
)
, L2 (Code, Description) AS
(
VALUES
('Ap..', 'Seed Fruit')
, ('Av..', 'Stone Fruit')
, ('Ca..', 'Vegetable')
, ('Ch..', 'Dairy')
)
*/
SELECT
T1.Name
, L1.Code AS Code1
, L1.Description AS Description1
, L2.Code AS Code2
, L2.Description AS Description2
FROM T1
JOIN L1 ON T1.Name LIKE TRANSLATE (L1.Code, '', '.', '') || '%'
JOIN L2 ON T1.Name LIKE TRANSLATE (L2.Code, '', '.', '') || '%'
姓名 | 代码1 | 说明1 | 代码2 | 说明2 |
---|---|---|---|---|
苹果 | 一个... | 水果 | 阿普.. | 种子果实 |
鳄梨 | 一个... | 水果 | AV.. | 核果 |
卷心菜 | C... | 食物 | 钙.. | 蔬菜 |
奶酪 | C... | 食物 | 中.. | 乳制品 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.