这个是用的左联合的方式
也可以
select log.*,student.name from log,student where log.id= student.id and log.tim=student.tim题主,你的描述中存在一些难以理解的地方,其中我最大的问题是,你这两张表没有数据和数据的对应关系吗,如果没有的话这个题目的意思其实是某个表里的一个字段的值在另一张表的某个字段中是否存在了?写好了 发给你自己测试下, 笔记本断网了,专门去同事电脑上发给你的,记得采纳哦-- 创建测试表
drop TABLE IF EXISTS test
create table test(
id TINYINT primary key,
qid1 CHAR(1),
qid2 CHAR(1),
qid3 CHAR(1),
qid4 CHAR(1)
)
-- 插入测试数据
INSERT into test VALUES (1,'A','A','B','B')
-- 创建存储过程
DROP PROCEDURE IF exists P_test
DELIMITER &&
CREATE PROCEDURE P_test()
BEGIN
DECLARE q1,q2,q3,q4 char(1) DEFAULT ''
DECLARE aNum,bNum TINYINT DEFAULT 0
SELECT qid1,qid2,qid3,qid4 into q1,q2,q3,q4 FROM test
IF q1 = 'A' THEN
SET aNum = aNum+1
ELSE
SET bNum = bNum+1
END IF
IF q2 = 'A' THEN
SET aNum = aNum+1
ELSE
SET bNum = bNum+1
END IF
IF q3 = 'A' THEN
SET aNum = aNum+1
ELSE
SET bNum = bNum+1
END IF
IF q4 = 'A' THEN
SET aNum = aNum+1
ELSE
SET bNum = bNum+1
END IF
SELECT 'A',aNum
UNION
SELECT 'B',bNum
END &&
DELIMITER
-- 调用 就出现你要的结果
CALL P_test()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)