Mysql 如何获取在另一个表中定义的列值
有人帮我完成以下预期输出吗?我还添加了数据库结构 表1 表2Mysql 如何获取在另一个表中定义的列值,mysql,sql,Mysql,Sql,有人帮我完成以下预期输出吗?我还添加了数据库结构 表1 表2 Id WorkId field1 field2 field3 field4 field5 1 1 JOHN 1 2 2 1 0 1 3 3 0 预期产出 Work Id Question Answer 1 What is your name? JOHN 1
Id WorkId field1 field2 field3 field4 field5
1 1 JOHN 1
2 2 1 0 1
3 3 0
预期产出
Work Id Question Answer
1 What is your name? JOHN
1 is you have mobile number? 1
2 is you have passport? 1
2 are you indian? 0
2 abc? 1
3 cde? 0
表格结构
希望这对你有帮助
SELECT t1.workid AS 'workid',t1.Question AS 'Question',
COALESCE(`field1`,`field2`,`field3`,`field4`,`field5`) AS 'Answer'
FROM table1 AS t1
JOIN table2 AS t2 ON t1.workid = t2.workid
您可以添加表格结构吗..我已经添加了表格结构您将如何决定将使用哪个字段作为答案您将如何决定将使用哪个字段作为答案?因为在第一个问题中,您使用字段1作为答案,在第二个问题中,您使用字段2作为答案,在第三个问题中,您使用字段4作为答案,依此类推……问题和字段之间的关系由系统操作员(如教师)创建(由项目动态设置),答案将由用户(如学生)输入感谢Ashish,合并函数的计算结果不为空值时出现一个问题。我试图数一数约翰来了多少次,有多少次是真是假。一些时间用户没有选择时间值存储为null的选项,所以这意味着该字段的数据不可用,我想显示该“'माहिती उपलब्ध नाही'"@NileshPatil我认为问题在于你的表结构更新你的表结构。发布新问题“我想展示报告”माहिती उपलब्ध नाही'" 另外,请阅读如何替换mysql中的空值。如果这个答案真的对您有帮助,您应该接受这个答案。谢谢您的帮助。ASHISHAbove查询仍然没有达到所需的输出
CREATE DATABASE /*!32312 IF NOT EXISTS*/`testtest` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `testtest`;
/*Table structure for table `table1` */
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`WorkId` int(11) DEFAULT NULL,
`Question` varchar(100) DEFAULT NULL,
`ColumnRef` varchar(100) DEFAULT NULL,
`ColumnType` varchar(100) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
/*Data for the table `table1` */
insert into `table1`(`Id`,`WorkId`,`Question`,`ColumnRef`,`ColumnType`) values (1,1,'What is your name?','field1','String'),(2,1,'is you have mobile number?','field2','boolean'),(3,2,'is you have passport?','field2','boolean'),(4,2,'are you indian?','field4','boolean'),(5,2,'abc?','field5','Number'),(6,3,'CDE?','field2','boolean');
/*Table structure for table `table2` */
DROP TABLE IF EXISTS `table2`;
CREATE TABLE `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`workid` int(11) DEFAULT NULL,
`field1` varchar(11) DEFAULT NULL,
`field2` int(11) DEFAULT NULL,
`field3` int(11) DEFAULT NULL,
`field4` int(11) DEFAULT NULL,
`field5` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*Data for the table `table2` */
insert into `table2`(`id`,`workid`,`field1`,`field2`,`field3`,`field4`,`field5`) values (1,1,'JOHN',1,NULL,NULL,NULL),(2,2,NULL,1,NULL,0,1),(3,3,NULL,1,NULL,NULL,NULL);
SELECT t1.workid AS 'workid',t1.Question AS 'Question',
COALESCE(`field1`,`field2`,`field3`,`field4`,`field5`) AS 'Answer'
FROM table1 AS t1
JOIN table2 AS t2 ON t1.workid = t2.workid