日期:2014-05-18 浏览次数:20546 次
CREATE TABLE ee_work (work_id INT NOT NULL identity(1,1) PRIMARY KEY, work_name NVARCHAR(20) NOT NULL UNIQUE, ) CREATE TABLE ee_terms (term_id INT NOT NULL identity(1,1) PRIMARY KEY, term_name NVARCHAR(10) NOT NULL UNIQUE, work_id INT FOREIGN KEY REFERENCES ee_work(work_id) )
…… string html = string.Empty; //HTML页面 SqlCommand cmd = new SqlCommand(cmdtext, conn); //创建SqlDataReader对象,用于保存查询数据信息 SqlDataReader dr = cmd.ExecuteReader(); //应用while循环语句获取在SqlDataReader中获取到的数据 while (dr.Read()) { //html += ……;自己绘制表格 } …… this.classlist.Text = html; dr.Close(); conn.Close();
--测试数据 DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10)) INSERT @t SELECT '001',NULL ,'山东省' UNION ALL SELECT '002','001','烟台市' UNION ALL SELECT '004','002','招远市' UNION ALL SELECT '003','001','青岛市' UNION ALL SELECT '005',NULL ,'四会市' UNION ALL SELECT '006','005','清远市' UNION ALL SELECT '007','006','小分市' --深度排序显示处理 --生成每个节点的编码累计(相同当单编号法的编码) DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000)) DECLARE @Level int SET @Level=0 INSERT @t_Level SELECT ID,@Level,ID FROM @t WHERE PID IS NULL WHILE @@ROWCOUNT>0 BEGIN SET @Level=@Level+1 INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID FROM @t a,@t_Level b WHERE a.PID=b.ID AND b.Level=@Level-1 END --显示结果 SELECT SPACE(b.Level*2)+'|--'+a.Name FROM @t a,@t_Level b WHERE a.ID=b.ID ORDER BY b.Sort /*--结果 |--山东省 |--烟台市 |--招远市 |--青岛市 |--四会市 |--清远市 |--小分市 --*/
------解决方案--------------------
没有看内容,只从标题分析:怎么查询两张表的所有内容,排除相同的内容?
SELECT * FROM ee_work UNION SELECT * FROM ee_terms --两结果集合并,不保留重复的部分 --反之 SELECT * FROM ee_work INTERSECT SELECT * FROM ee_terms --两结果集合并,只保留重复的部分
------解决方案--------------------
select ee_work.*,ee_terms.* from ee_work left join ee_terms on ee_work.wrok_id =ee_terms.work_id