LEFT JOIN 的一个问题解决办法
今天在一个程序后台删除一个东西的时候,却出现了这个问题:
System Message: MySQL Query Error
User: admin
Time: 2007-10-20 21:08:48
Script: /k/admincp.php
[u]SQL: DELETE FROM table1 T LEFT JOIN table2 F USING(id) where F.typeid=1[/u]
Error: 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 'LEFT JOIN table2 F USING(id) where F.typeid=1' at line 1
Errno: 1064
在GOOGLE搜索了大约1个小时后,终于在一个国外网站上找到了原因,解决起来非常简单,TYYD
只需把如下sql:
DELETE FROM table1 T LEFT JOIN table2 F USING (id) where F.typeid=1
修改为如下sql:
DELETE T.* FROM table1 T LEFT JOIN table2 F USING(id) where F.typeid=1
增加一个T.*就搞定啦。。不容易啊
故障分析:因为insert、update、和delete三个参数,都只能针对一个表操作
这次的delete因为使用了left join,因此让程序造成是delete是对两个表进行操作,因此出现了这个问题。
分享到:
相关推荐
SELECT DISTINCT g.*, cp.name AS cp_name, c.name AS category_name, t.name AS type_name FROMgm_game g LEFT JOIN gm_cp cp ON cp.id = g.cp_id AND cp.deleted = 0 LEFT JOIN gm_category c ON c.id = g....
一个通用的访问不同数据源(如MSSql, Postgree, FireBird等)的数据访问层类库源码。
本文实例讲述了Yii使用DeleteAll连表删除出现报错问题的解决方法。分享给大家供大家参考,具体如下: 删除数据的时候,经常会遇到连联判断删除数据的条件,今天用Yii 的CDbCriteria生成关连条件。批量删除的时候...
以下我们将演示MySQL LEFT JOIN 和 JOIN 的使用的不同之处。 在命令提示符中使用JOIN 我们在RUNOOB数据库中有两张表 tcount_tbl 和 runoob_tbl。两张数据表数据如下: 实例 尝试以下实例: root@host# mysql -u roo
SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL ...
在MySQL中联接(join)行为是指两个或多个表到一个表中可以使用连接在SELECT,UPDATE和DELETE语句中加入MySQL表。我们将看到一个例子LEFT JOIN简单的MySQL连接。 在命令提示符使用联接: 假设我们两个表的教程tcount_...
18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE TABLE 语句 29 24. SQL 约束 ...
MySQL 连接的使用 在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何...RIGHT JOIN(右连接): 与 LEFT JOIN 相
还将了解高级数据查询技术,包括INNER JOIN,LEFT JOIN,子查询,UNION等。 参考阅读:http://www.yiibai.com/mysql/basic-mysql.html 第二章 常用技巧 本节将提供一些高级的 MySQL 技术和技巧,以帮助您有效解决 ...
action.AddJoin(ViewJoinEnum.leftjoin, "cms_user", "cms_manager", field); } action.SqlWhere(cms_user.Columns.username, "admin"); action.SqlWhere(cms_user.Columns.password, "123456"); PageList...
3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union [All],Minus,Intersect) 3.9 字段别名,数据表别名 ...
文章目录说明必知必会建表多行插入LIMIT语句创建新表LIKE操作符IN操作符BETWEEN操作符AS操作符INSERT INTO SELECT语句JOIN语句INNER JOINLEFT JOINRIGHT JOINFULL JOINUNION操作符约束相关CREATE INDEX语句完美退出...
3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union [All],Minus,Intersect) 3.9 字段别名,数据表别名 ...
left join t_using_desk b on a.id = b.desk_id go --新建台号时向 t_using_desk 插入记录 --台号显示的时候查 v_desk --去掉表 t_dish_orderedNumber --t_order有些字段改为float --t_order_temp增加 price ...
例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii ...select max([id]) from YourTable group by (name + value)) 方法2 delete a from 表 a left join( select (id) from 表 group b
SELECT 语句支持 INNER JOIN、LEFT OUTER JOIN 和RIGHT OUTER JOIN 多表联合查询,但不支持同一表的联合查询。 代码中只实现了 SQL Server 的相关操作。其它数据库可以扩展。 希望 CSDN 中的大神给我一些建议。小弟...
基本sql 语法:select/insert/update/delete,掌握最基本的语法即可,什么inner join,left join的了解就行 mysql的应用场景大多都是高并发访问/业务逻辑简单,join/子查询/视图/触发器 基本上不用10.sql 聚集查询:...
select a.ml_id,a.parent_id,@level from dbo.T_TEMP_MuLu a left join @t b on a.parent_id=b.ml_id where b.level=@level-1 end return end delete dbo.T_TEMP_MuLu where ml_id in (select ml_id ...
左连接又称为左外连接,是外连接中的一种,他的关键字是 left join on/left outter join on 在两个表的查询中,左连接时左表的记录会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL ...
下面这个类可以通过具有参数的数组来构建MySQL查询语句,通过指定的表和字段参数创建SELECT ,INSERT , UPDATE和DELETE语句,创建SQL语句的WHERE条件,像LIKE的查询语句,使用LEFT JOIN和ORDER 语句。