【解析mysqlleft(right)join使用on与where筛选的差异_PHP教程】教程文章相关的互联网学习教程文章

php – 为什么使用“AND”运算符与JOIN一起使用,即使没有“WHERE”子句也是如此【代码】

下午好,我刚注意到了什么.如果我在其中编写带有JOIN的mysql查询,例如:Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar WHERE Car="Brand"它将返回等于“品牌”的汽车. 但是我注意到如果我以这种方式构造查询:Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar AND Car="Brand" 它将返回与上一个查询相同的内容.注意到我使用AND而不是WHERE.我还在PHP查询中测试了它的工作原理.例如:Se...

php – laravel 4 updateExistingPivot,where子句不起作用【代码】

我有两个型号: 用户和资源 关系表是resource_user. resource_user中的字段是:id | resource_id | user_id | another_id我在用户中有这种关系:public function resources() {return $this->belongsToMany('Resource')->withPivot(array('value','another_id',));}现在我要更新我的数据透视表: (在模型用户中有这个代码示例)$this->resources()->whereAnotherId(1)->updateExistingPivot($resource_id, array('value' => $value,...

php – Eloquent WHERE LIKE子句,包含两列以上【代码】

我一直在尝试在Laravel中进行查询,在原始SQL中将是这样的"SELECT * FROM students WHERE (((students.user_id)=$id) AND (((students.name) Like '%$q%') OR ((students.last_name) Like '%$q%') OR ((students.email) Like '%$q%')))")我遵循这个线程(Eloquent WHERE LIKE clause with multiple columns)并且它工作正常,但只有两列Ej:$students = student::where(user_id, Auth::id())->whereRaw('concat(name," ",last_name) li...

php – “SELECT * FROM users WHERE id IN()”== FAIL【代码】

我有一个名为sqlf()的函数,它模拟预处理语句.例如,我可以做以下事情:$sql = sqlf("SELECT * FROM Users WHERE name= :1 AND email= :2",Big "John",bj@example.com) ;由于各种原因,我不能使用预备语句,但我想模仿它们.我遇到的问题是像查询一样$sql = sqlf("SELECT * FROM Users WHERE id IN (:1)",array(1,2,3) );我的代码工作正常,但它失败了,只有空数组,例如以下抛出一个mysql错误:SELECT * FROM Users WHERE id IN ();有没有...

php – 当WHERE不匹配时,在COUNT列中显示“0”?【代码】

我想要做的是从表中检索所有数据,并按用户在特定类别中玩的游戏数量来排序.有什么办法可以使用某种“COUNT WHERE”sql语句吗? 这是我到目前为止所拥有的.如果他们在“fps”类别中玩过游戏,它只会返回用户,但是我希望它以降序显示所有用户,即使他们没有玩过fps游戏.请原谅我糟糕的桌子SELECT user_data.user, COUNT(played_games.game_cat) as 'count' FROM user_data, played_games WHERE user_data.user_id = played_games.user_...

php – 如何在Doctrine查询生成器中进行多个WHERE IN列查询?【代码】

我想使用带有两列检查的WHERE IN语句更新db中的多条记录. 纯MySql原始查询看起来像这样..它的工作原理:UPDATE poll_quota q SET q.count = q.count+1 WHERE q.form_id=14 AND ((q.field_id,q.value) IN (('A',1),('B',1)))我的代码:$this->createQueryBuilder("q")->update()->set("q.count","q.count+1")->where("q.form_id=:form_id")->andWhere("((q.field_id,q.value) IN (:wherein))")->setParameter(":form_id",$form_id)-...

ThinkPHP 中 where条件 or,and 同时使用【代码】

(a=1 and b=2) or (c=3 and d=4) and e=5$where_1[a] = 1; $where_1[b] = 2; $where_2[c] = 3; $where_2[d] = 4; $where_main[_complex] = array($where_1,$where_2,_logic => or ); $where_main[e] = 5; $this->user->where($where_main)->select();SELECT * FROM `ecs_order_info` WHERE ( ( `order_status` = 5 AND `shipping_status` = 2 ) OR `order_status` = 6 ) AND `user_id` = 1上面标红的where查询语句在TP中的拼接如下...

PHP-Mysql存储过程where子句【代码】

好,让我再试一次. query(“ CALL getemployee(‘$eml’)”);$result = $sql-> fetch_array();?>这是我的存储过程:Delimiter // Create procedure getemployee(in eml varchar(50)) BeginSelect * from employees where email = eml; End// Delimiter ;我从浏览器得到的错误:“致命错误:在非对象上调用成员函数fetch_array()…”. 我使用phpmyadmin版本3.2.4和mysql客户端版本:5.1.41解决方法:您的CREATE PROCEDURE语句似乎无效...

在MySQL的同一WHERE上使用PHP中的两个变量【代码】

我正在尝试使用PHP从MySQL服务器中提取数据.该信息具有类似YYYYMM(fx.201108)的日期字段.我的问题是,如果我想返回特定年份的前半年或后半年,SQL查询的外观如何?我已经厌倦了像这样的事情,但是似乎不到:SELECT * FROM `poster` WHERE mdr LIKE '2011%' AND mdr < '%06'恐怕Google对我没有太大帮助.解决方法:您可以执行此操作,但不能使用VARCHAR或TEXT:SELECT * FROM `poster` WHERE mdr < '201106' AND mdr > '201100'

PHP-MySQL查询和条件where子句【代码】

我正在尝试使用PHP和MySQL获得涉及实际用户的所有私人聊天.为此,我有一个名为“房间”的表(id,id_initiate_user,id_target_user)和另一个名为“用户”的表(id_pseudo,avatar).如果实际用户是聊天室的发起用户,那么我想从目标用户那里获取化身和伪造的东西;如果实际用户是该房间的目标用户,那么我想从发起人那里获取化身和假冒的东西.用户(无论如何,我都希望其他成员的头像和伪图片). 我猜我当时需要查询中的一个条件,但我真的不知...

php-尝试在使用WHERE语句时使用左联接从数据库中获取所有结果【代码】

我已经进行了一些研究,我认为我所寻找的东西与通过搜索可以找到的东西有些相反. 我目前正在尝试从一个表中提取一堆数据,并将其与第二个表进行匹配.我正在使用左联接来完成此任务.我使用的代码是:SELECT pn.id FROM pn LEFT OUTER JOIN p ON pn.part_number = p.part_number WHERE pn.programID = '13' AND pn.visible = '1' AND pn.type_id = '11' AND (p.user_code = '01045' OR p.user_code IS NULL) GROUP BY pn.part_nu...

php-使用WHERE在MySQL中更新查询【代码】

我正在运行以下UPDATE查询,但没有成功:$sql="UPDATE users SET firstname='".$_GET['fn']."',lastname='".$_GET['ln']."',email='".$_GET['emadd']."' WHERE id = ".$_GET['id'];mysql_error();虽然我确定这是语法问题,但不会返回任何错误. 如果您能通过说明帮助我进行清理以帮助我了解哪里出了问题,将不胜感激! 为了提供更大的参考点,以下是表创建代码:$sql="CREATE TABLE users ( id int NOT NULL auto_increment, PRIMARY KE...

php-在MySQL中使用where子句添加时差【代码】

我有一个包含成百上千行的数据表,这些表代表对服务器获取数据的请求.每条记录都有一个时间戳,服务器ID和服务器是否正确响应的二进制值(tinyint).查询时间不是恒定的. 我试图通过累加服务器在线的查询之间的时间(非常可取的mysql查询)来获得服务器被视为“在线”的总时间.例如.server | time | status 1 | 1/1/2012 11:00 online 1 | 1/1/2012 11:02 online 1 | 1/1/2012 11:05 offline 2 | 1/1/2012 11:10 online 1 | 1/1/2012 11:...

PHP-CI MySQL查询联接表,并且where语句不返回所有行【代码】

我有3个表要联接,但是当我在第三个表上使用where语句,而第三个表没有它时,即使我使用的是left,它也不会返回第一和第二个表中的行加入.Table 1 +---------+--------------+----------+ | acc_PID | acc_name | acc_type | +---------+--------------+----------+ | 1 | Account 1 | 1 | | 2 | Account 2 | 1 | | 3 | Account 3 | 2 | | 4 | Account 4 | 1 | +...

PHP-MYSQL与多个WHERE最接近的匹配项【代码】

在我的数据库中,我有一个包含产品的表,另一个表具有与每个产品相关的标签. 当用户查看产品页面时,我想显示与他正在查看的产品“最相关”(或最接近)的产品. 假设产品带有5种不同的标签.我想获得具有相同5个标记的产品,然后具有相同5个标记的4个产品,然后具有相同5个标记的3个产品,等等… 为此,我猜测我将不得不创建一个或多个MYSQL查询,但我什至不知道从哪里开始. 匹配相同的5个标签很容易,我可以只使用WHERE tag =’?’ AND tag =...