Tag: sql

我怎样才能做一个SQL语句与JOIN UPDATE语句?

我需要使用“父”表中的数据更新SQL Server 2005中的这个表,如下所示: 拍卖 id (int) udid (int) assid (int) UD id (int) assid (int) sale.assid包含更新ud.assid的正确值。 什么查询会做到这一点? 我正在考虑join,但我不确定是否有可能。

简单的方法来转置Sql中的列和行?

我如何简单地在SQL中切换行? 有没有简单的命令转置? 即打开这个结果: Paul | John | Tim | Eric Red 1 5 1 3 Green 8 4 3 5 Blue 2 2 9 1 进入这个: Red | Green | Blue Paul 1 8 2 John 5 4 2 Tim 1 3 9 Eric 3 5 1 对于这种情况, PIVOT似乎太复杂了。

select其他表中不存在的行

我有两个postgresql表: table name column names ———– ———————— login_log ip | etc. ip_location ip | location | hostname | etc. 我想从login_log获取login_log中没有一行的每个IP地址。 我试过这个查询,但它引发了一个语法错误。 SELECT login_log.ip FROM login_log WHERE NOT EXIST (SELECT ip_location.ip FROM ip_location WHERE login_log.ip = ip_location.ip) ERROR: syntax error at or near "SELECT" LINE 3: WHERE NOT EXIST (SELECT ip_location.ip` 我也想知道,如果这个查询(使其工作调整)是最好的查询为此目的。

不在,不存在

哪些查询更快? 不存在: SELECT ProductID, ProductName FROM Northwind..Products p WHERE NOT EXISTS ( SELECT 1 FROM Northwind..[Order Details] od WHERE p.ProductId = od.ProductId) 或者不在: SELECT ProductID, ProductName FROM Northwind..Products p WHERE p.ProductID NOT IN ( SELECT ProductID FROM Northwind..[Order Details]) 查询执行计划说,他们都做同样的事情。 如果是这样,那么推荐的forms是什么? 这是基于NorthWind数据库。 [编辑] 刚刚发现这个有用的文章: http : //weblogs.sqlteam.com/mladenp/archive/2007/05/18/60210.aspx 我想我会坚持不存在。

SQL JOIN和不同types的JOIN

我在SO和其他一些论坛上经历了许多线索。 所以我想我会总结“ 什么是SQL JOIN? ”和“ 什么是不同types的SQL JOIN? ”。

插入…值(SELECT … FROM …)

我试图插入到一个表使用来自另一个表的input。 尽pipe对于许多数据库引擎来说这是完全可行的,但是我总是很难记住当天SQL引擎( MySQL , Oracle , SQL Server , Informix和DB2 )的正确语法。 是否有一个来自SQL标准(例如, SQL-92 )的silver-bullet语法,允许我插入值而不用担心底层数据库?

SQL,辅助数字表

对于某些types的sql查询,辅助数字表格可能非常有用。 它可以创build为一个表格,其中包含特定任务所需的行数,或者作为用户定义的函数返回每个查询所需的行数。 什么是创build这样一个function的最佳方式?

获取插入行身份的最佳方法?

什么是插入行的身份的最佳方式? 我知道@@IDENTITY和IDENT_CURRENT和SCOPE_IDENTITY但不明白每个附带的优点和缺点。 有人可以解释一下这些差异,什么时候我应该使用它们?

我可以在准备好的语句中参数化表名吗?

我多次使用mysqli_stmt_bind_param函数。 但是,如果我分离variables,我试图防止SQL注入我遇到了错误。 以下是一些代码示例: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ) { $statement = $mysqli->prepare("INSERT INTO " .$new_table . " VALUES (?,?,?,?,?,?,?);"); mysqli_stmt_bind_param( $statment, 'sssisss', $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ); $statement->execute(); } 是否有可能以某种方式取代.$new_table. 与另一个问号语句串联,制作另一个绑定参数语句,或添加到现有的一个,以防止SQL注入? 像这样或这样的某种forms: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol […]

MySQL如何填补范围内缺less的date?

我有一个2列,date和得分的表。 它最多有30个参赛作品,最近30天的参赛作品之一。 date score —————– 1.8.2010 19 2.8.2010 21 4.8.2010 14 7.8.2010 10 10.8.2010 14 我的问题是有些date不见了 – 我想看看: date score —————– 1.8.2010 19 2.8.2010 21 3.8.2010 0 4.8.2010 14 5.8.2010 0 6.8.2010 0 7.8.2010 10 … 我需要从单个查询得到:19,21,9,14,0,0,10,0,0,14 …这意味着缺less的date是填充0。 我知道如何获取所有的值,并在服务器端语言遍历date和缺less空白。 但是这是可能的在MySQL中做的,所以我按datesorting的结果,并得到缺失的部分。 编辑:在这个表中有另一个名为UserID的列,所以我有30.000个用户,其中一些在这个表中有得分。 如果date<30天前,我每天都会删除date,因为我需要为每个用户提供最后30天的分数。 原因是我制作了过去30天的用户活动图,并绘制了我需要用逗号分隔的30个值的图表。 所以我可以说在查询让我的USERID = 10203活动和查询会得到我30分,每过去30天。 我希望我现在更清楚。