扩展:多对多关系,上述SQL中id与name位置互换后,查询有值,就说明两者是多对多关系
证明id字段不是主键
- 下面2种写法结果一样
-- 写法01 SELECT ID FROM A GROUP BY ID HAVING COUNT(*)>1; -- 写法02 SELECT ID,COUNT(ID) FROM A GROUP BY ID HAVING COUNT(ID)>1;
证明id, name字段不是联合主键
SELECT ID,`NAME` FROM A GROUP BY ID,`NAME` HAVING COUNT(*)>1 ORDER BY ID;
数据准备
-- 建表 CREATE TABLE IF NOT EXISTS TEST01.A ( ID VARCHAR(50) COMMENT 'ID号' -- 01 ,NUMS INT COMMENT '数字' -- 02 ,NAME VARCHAR(50) COMMENT '名字' -- 03 ) COMMENT 'A表' STORED AS PARQUET ; -- 插数 INSERT INTO TEST01.A (ID,NUMS,NAME) VALUES ('01',1,NULL); INSERT INTO TEST01.A (ID,NUMS,NAME) VALUES ('02',2,''); INSERT INTO TEST01.A (ID,NUMS,NAME) VALUES ('03',3,'c'); -- 删数 DELETE FROM TEST01.A WHERE ID = '04'; -- 删表 DROP TABLE IF EXISTS TEST01.A;
总结
到此这篇关于SQL多表多字段比对方法的文章就介绍到这了,更多相关SQL多表多字段比对内容请搜索