gpt4 book ai didi

mysql 仅用一张表进行复杂选择

转载 作者:行者123 更新时间:2023-11-30 00:32:05 25 4
gpt4 key购买 nike

这是我的表结构:

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,lead_id INT NOT NULL
,form INT NOT NULL
,value VARCHAR(20) NOT NULL
,field_no INT NOT NULL
);

INSERT INTO my_table VALUES
( 1 ,1 ,1 ,'John' ,5),
( 2 ,1 ,1 ,'Smith' ,6),
( 3 ,1 ,1 ,'987654321',3),
( 4, 2 ,1 ,'Sam' ,5),
( 5 ,2 ,1 ,'Long' ,6),
( 6 ,2 ,1 ,'42254545' ,3),
( 7 ,3 ,2 ,'23' ,12),
( 8 ,3 ,2 ,'Foo' ,5),
( 9 ,3 ,2 ,'Bar' ,3),
(10 ,4 ,1 ,'Simon' ,5),
(11 ,4 ,1 ,'Rhodes' ,6),
(12 ,4 ,1 ,'659874' ,3);

http://sqlfiddle.com/#!2/77f80

是否可以仅在一个 SELECT 语句中选择以下内容:
结果第 1 行:“John Smith”、“987654321”
结果第 2 行:“Sam Long”、“42254545”
结果第 3 行:“Simon Rhodes”、“659874”

即。如果这是在一行上,则选择将是:
SELECT CONCAT(Name,"", Surname) as fullname, employeeNo from tableA WHERE form = "1"group by Lead_id


请帮忙

最佳答案

这只是一个基本的 EAV 模型

SELECT lead_id
, MAX(CASE WHEN field_no = 5 THEN value END) firstname
, MAX(CASE WHEN field_no = 6 THEN value END) lastname
, MAX(CASE WHEN field_no = 3 THEN value END) telephone
, MAX(CASE WHEN field_no = 12 THEN value END) number
FROM my_table
GROUP
BY lead_id;

http://sqlfiddle.com/#!2/ea3b1f/1

关于mysql 仅用一张表进行复杂选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com