嵌套查询语法是一样的,只是mysql从4.1开始才支持子查询

解决方案 »

  1.   

    但是我在tomcat上运行不了啊
    他显示No SQL statement specified <sql:query var="query" dataSource="${jspdev}">
        SELECT * FROM category where catid not in(select category from product )
    </sql:query><%@ page contentType="text/html; charset=gb2312" language="java" errorPage="../../error.jsp" %>
    <%@ include file="../../jstl.inc"%>
    delecategory_do.jsp
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="../../hellking.css" type=text/css rel=stylesheet>
    </head>
    <body><sql:update var="update" dataSource="${jspdev}" sql="delete from category where catid='${param.catid}'">
       
    </sql:update>
    <c:redirect url="deleteCategory.jsp"/>
     
    </body>
    </html>
      

  2.   

    jsp不懂,错误提示是“没有指定SQL语句”直接连到mysql上执行你的sql语句,看看能不能成功
      

  3.   

    这个是delecategory.jsp<%@ page language="java" errorPage="../../error.jsp" %>
    <%@ include file="../../jstl.inc"%><html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="../../hellking.css" type=text/css rel=stylesheet>
    </head>
    <body>
    <!--只有空的分类才能被删除-->
    <hr color=008800 align=center width=80%><div align="center">::以下是系统中可以删除分类,如果分类中已经有商品,那么就不能被删除::</div>
    <sql:query var="query" dataSource="${jspdev}">
        SELECT * FROM category where catid not in(select category from product )
    </sql:query> <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
      <tr bgcolor="#cccccc"> 
             <td><b>ID</b></td> 
             <td><b>名称 </b></td>  
             <td><b>描述 </b></td>   
             <td><b>删除 </b></td>    
     
        </tr>
      <c:forEach var="row" items="${query.rows}">
      <tr bgcolor="#FFFF88">
        <td> ${row.catid}</td>
        <td> ${row.name}</td>
        <td> ${row.descn }</td>
        <td><a href="deleteCategory_do.jsp?catid=${row.catid}"/>删除</a></td>
      </tr>
      </c:forEach>
    </table>
    </form>
    </body>
    </html>
      

  4.   

    这个是deletecategory_do.jsp<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="../../error.jsp" %>
    <%@ include file="../../jstl.inc"%><html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="../../hellking.css" type=text/css rel=stylesheet>
    </head>
    <body><sql:update var="update" dataSource="${jspdev}" sql="delete from category where catid='${param.catid}'">
       
    </sql:update>
    <c:redirect url="deleteCategory.jsp"/>
     
    </body>
    </html>
      

  5.   

    我刚刚删除where catid not in(select category from product ) 可以显示全部分类但是我把where复原后 显示SELECT * FROM category where catid not in(select category from product) : Error during query: Unexpected Exception: java.sql.SQLException message given: Syntax error or access violation: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select category from product)' at line 1