- SQL code
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))
select ee_work.*,ee_terms.* from ee_work,ee_terms
查询后返回如图结果:
请问该怎么写查询语句?谢谢!
我想弄成这样的页面效果:
asp.net的页面的执行代码:
- C# code
……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();
------解决方案--------------------
- SQL code
--测试数据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 intSET @Level=0INSERT @t_Level SELECT ID,@Level,IDFROM @tWHERE PID IS NULLWHILE @@ROWCOUNT>0BEGIN SET @[email protected]+1 INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID FROM @t a,@t_Level b WHERE a.PID=b.ID AND [email protected]END--显示结果SELECT SPACE(b.Level*2)+'|--'+a.NameFROM @t a,@t_Level bWHERE a.ID=b.IDORDER BY b.Sort/*--结果|--山东省 |--烟台市 |--招远市 |--青岛市|--四会市 |--清远市 |--小分市--*/
------解决方案--------------------
没有看内容,只从标题分析:怎么查询两张表的所有内容,排除相同的内容?
- SQL code
SELECT * FROM ee_work UNIONSELECT * FROM ee_terms--两结果集合并,不保留重复的部分--反之SELECT * FROM ee_work INTERSECTSELECT * FROM ee_terms--两结果集合并,只保留重复的部分
------解决方案--------------------
- SQL code
select ee_work.*,ee_terms.* from ee_work left join ee_termson ee_work.wrok_id =ee_terms.work_id