Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

27
检索每个组中的最后一条记录-MySQL
有一个messages包含数据的表,如下所示: Id Name Other_Columns ------------------------- 1 A A_data_1 2 A A_data_2 3 A A_data_3 4 B B_data_1 5 B B_data_2 6 C C_data_1 如果我运行查询select * from messages group by name,我将得到的结果为: 1 A A_data_1 4 B B_data_1 6 C C_data_1 什么查询将返回以下结果? 3 A A_data_3 5 B B_data_2 6 C C_data_1 即,应返回每个组中的最后一条记录。 …

11
INNER JOIN ON与WHERE子句
为简单起见,假设所有相关字段均为NOT NULL。 你可以做: SELECT table1.this, table2.that, table2.somethingelse FROM table1, table2 WHERE table1.foreignkey = table2.primarykey AND (some other conditions) 要不然: SELECT table1.this, table2.that, table2.somethingelse FROM table1 INNER JOIN table2 ON table1.foreignkey = table2.primarykey WHERE (some other conditions) 这两个工作方式MySQL是否相同?
941 sql  mysql  join  inner-join 

22
SQL根据ID匹配从一个表更新到另一个表
我有一个与account numbers和的数据库card numbers。我将这些文件匹配到文件,将update任何卡号匹配到该帐号,所以我只使用帐号。 我创建了一个将表链接到帐户/卡数据库的视图,以返回Table ID和相关的帐号,现在我需要更新ID与帐号匹配的那些记录。 这是Sales_Import表格,其中的account number字段需要更新: LeadID AccountNumber 147 5807811235 150 5807811326 185 7006100100007267039 这是RetrieveAccountNumber表格,我需要从这里更新: LeadID AccountNumber 147 7006100100007266957 150 7006100100007267039 我尝试了以下方法,但到目前为止没有运气: UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber FROM RetrieveAccountNumber WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID = RetrieveAccountNumber.LeadID) 它将卡号更新为帐号,但是帐号被替换为 NULL

13
什么时候应该在内部联接上使用交叉应用?
使用CROSS APPLY的主要目的是什么? 我已经读过(模糊地通过Internet上的帖子),cross apply如果您要进行分区,则在选择大型数据集时可能会更有效率。(想起分页) 我也知道,CROSS APPLY不需要UDF作为右表。 在大多数INNER JOIN查询(一对多关系)中,我可以将它们重写为use CROSS APPLY,但它们始终会为我提供等效的执行计划。 谁能给我一个很好的例子,说明在CROSS APPLY哪些情况下INNER JOIN行之有效的情况下也有所作为? 编辑: 这是一个简单的示例,其中执行计划完全相同。(向我展示它们的不同之处以及cross apply更快/更高效的地方) create table Company ( companyId int identity(1,1) , companyName varchar(100) , zipcode varchar(10) , constraint PK_Company primary key (companyId) ) GO create table Person ( personId int identity(1,1) , personName varchar(100) , companyId int …


11
插入MySQL表或更新(如果存在)
我想向数据库表中添加一行,但是如果存在具有相同唯一键的行,我想更新该行。 例如: insert into table (id, name, age) values(1, "A", 19) 假设唯一键为id,并且在我的数据库中有一行id = 1。在这种情况下,我想用这些值更新该行。通常,这会产生错误。 如果使用insert IGNORE它,将忽略该错误,但仍不会更新。

10
如何在MySQL中“插入不存在”?
我从谷歌搜索开始,发现这篇文章讨论了互斥表。 我有一张约有1400万条记录的表。如果我想以相同的格式添加更多数据,是否有一种方法可以确保我要插入的记录在不使用一对查询的情况下就不存在(即,一个查询要检查,一个查询要插入的结果集是空)? 如果unique字段上存在约束,是否可以保证该约束insert将失败? 似乎只有一个约束,当我通过php发出插入命令时,脚本就发出了嘶哑的声音。

18
联接与子查询
我是一个老派的MySQL用户,并且始终喜欢JOIN子查询。但是如今,每个人都使用子查询,而我讨厌它。我不知道为什么 我缺乏理论知识来自行判断是否存在差异。子查询是否与a一样好JOIN,因此不必担心吗?
835 sql  mysql  subquery  join 


22
在SQL Server中的存储过程中搜索文本
我想从我所有的数据库存储过程中搜索文本。我使用下面的SQL: SELECT DISTINCT o.name AS Object_Name, o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id = o.object_id WHERE m.definition Like '%[ABD]%'; 我想[ABD]在所有存储过程(包括方括号)中进行搜索,但未给出正确的结果。如何更改查询以实现此目的?


11
如何加入第一行
我将使用一个具体的但假设的示例。 每个订单通常只有一个订单项: 命令: OrderGUID OrderNumber ========= ============ {FFB2...} STL-7442-1 {3EC6...} MPT-9931-8A LineItems: LineItemGUID Order ID Quantity Description ============ ======== ======== ================================= {098FBE3...} 1 7 prefabulated amulite {1609B09...} 2 32 spurving bearing 但偶尔会有一个订单包含两个订单项: LineItemID Order ID Quantity Description ========== ======== ======== ================================= {A58A1...} 6,784,329 5 pentametric fan {0E9BC...} 6,784,329 5 differential …


14
SQL Server中的DateTime2 vs DateTime
哪一个: datetime datetime2 SQL Server 2008+中存储日期和时间的推荐方法是什么? 我知道精度(可能还有存储空间)上的差异,但是暂时忽略这些差异,是否有关于何时使用什么的最佳实践文档,或者也许我们应该只使用datetime2?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.