草庐IT

table_id

全部标签

mysql - 统计table2的行不包括mysql中table1的所有行

我有表1,它表示具有列ItemID和列ItemInfo的项目。然后,我有表2,它表示具有列ItemID(父级)、列SubItemID和列SubItemInfo的子项。我正在尝试通过以下方式获取每个项目的所有子项目的数量:selectitems.itemID,count(*)ascountfromitems,subItemswheresubItems.itemID=items.itemIDgroupbyitemID除了没有子项目的项目外,它工作正常。不是返回子项计数为0的项行,而是该行根本不存在。是否有一种有效的方法来强制选择第一个表(项目)中的所有行? 最佳

mysql - 你如何使用 JOIN 而没有 ID 进行删除?

以下查询生成我要删除的记录列表...SELECT*FROM`orderitems`asoiLEFTJOIN`orders`asoON(o.`orderid`=oi.`orderid`)WHEREo.`date`='2012-10-05'ANDo.`status`='init';不幸的是,这些表的设计没有id字段。我看过其他带有连接的删除,但都使用id字段。这不起作用:DELETEFROM`orderitems`asoiLEFTJOIN`orders`asoON(o.`orderid`=oi.`orderid`)WHEREo.`date`='2012-10-05'ANDo.`status

mysql - 跨分片的增量 ID

我正在构建自己的分片解决方案。每个ID的构造如下:分片ID(小整数)表类型id(小整型)增量数(大整数)例如。00001000010000000015我使用虚拟分片,所以我可以将所有分片指向一个服务器,当我需要更多容量时,我只需添加另一台服务器并将一些虚拟分片指向该服务器,这样下次数据将被写入到新服务器而不是第一个服务器上,尽管读取将转到两个服务器,至少在我移动数据并在配置文件中更改它之前是这样。我的问题是递增的数字。我希望它们是独一无二的。在mysql中为特定表使用buildintincrementalid并不好,因为我可能会将数据移动到另一台服务器,并且在那里我可能有另一个数据使用

MySQL:找出丢失的订单 ID

我知道这个问题在StackOverFlow中问了好几次。我试过其中的几个,但我运气不好。我有一个MySQL表,其中有一个字段(orders_id)可能会随机出现在表中(不按顺序),我需要找出表中缺少哪些ID。orders_idproduct_nameqty1007WirelessMouse11000Laptop11004WirelessMouse31020PC31003WirelessMouse41025IPAD41026iphone1ExpectedAnswer:Assumeorders_idstartfrom1000.orders_id10001001100210051006100

mysql - SQL:KEY id_2 有什么作用?

我一直在使用:PRIMARYKEY(id),UNIQUEid(id),KEYid_2(id)每当我创建一个表时,但我不明白KEYid_2(id)的作用以及为什么?我到处搜索,找不到合适的答案。谢谢! 最佳答案 根据您的示例,我相信您在一列上创建了三个不同的索引...这可能不是您打算做的。首先,您要创建一个主键:PRIMARYKEY(id)接下来,您将创建一个唯一索引,这不是必需的,因为您已经有了主键...并将此唯一索引命名为id:UNIQUEid(id)最后,您创建名为id_2的第三个索引:KEYid_2(id)相反,我认为您应该只

mysql - 通过 SHOW TABLE STAUS 查询选择特定列

我必须通过SHOWTABLESTATUS查询选择特定的列。现在看起来像:SHOWTABLESTATUSIN`myTableName`WHERE`NAME`LIKE'%name_substring%';...并返回所有列。有什么方法可以达到这个目标吗? 最佳答案 您可以查询information_schema.TABLES以获得特定的列。查看演示:http://sqlfiddle.com/#!2/38506/3SELECT*FROMinformation_schema.TABLESWHERETABLE_NAME='myTableNam

mysql - 为什么我应该对关联表使用主 ID

我一直在阅读解释为什么主ID应始终在表中使用的问题,尤其是当一个表中的记录需要与另一个表中的记录相关联时。但是在我的例子中,该表是用户之一,因此有一个名称字段。当然,对于关联,我可以只使用用户的名称进行关联,或者我错过了什么。 最佳答案 您应该拥有主ID的主要原因之一是它应该是永久值,因为它可以用于引用其他表中的外键。您可以使用名称,前提是:上面定义了一个键。(显然是主键或唯一键)不能修改。您已在问题中陈述:“..association我可以只使用用户名来关联..”。如果您想修改名称并且已经有依赖于它的记录怎么办?

mysql - 无法创建表 '<table name>'(错误号 : 22)

我得到以下信息:Can'tcreatetable'tempabcd'(errno:22)此错误发生在以下查询(简化的)运行数千次之后DROPTABLEIFEXISTStempabcd;CREATETEMPORARYTABLEtempabcd(idint(11)NOTNULL,PRIMARYKEY(id))ENGINE=MyISAM;INSERTINTOtempabcdVALUES('1'),('2'),('3');SelectidfromtempabcdUnionSelectidfromothertableDROPTABLEIFEXISTStempabcd;查询一开始运行良好,但由于某

mysql - 通过第 n 个 child ID 获得最高的 parent ?

现在有一个问题,我们通常使用这种技术来维护父子关系,即我们将所有实体存储在一个具有parent_id列的表中,并且所有最上面的父级都有0在parent_id列中,这是一种很好的规范化技术,我同意,但也有一个缺点,它速度慢且效率低下。这主要是由递归引起的,比如对于每个父节点,我们必须一次又一次地运行查询来生成一棵树SELECTidFROM`table`WHEREparent_id=something我看过一些解决方案,有些人可能会尝试通过一次又一次地运行查询来使用任何编程语言来实现,这会给服务器带来负载,有些人提供了存储过程,但也涉及递归。所以我的问题是我们可以用一个数据库查询树(连接或

PHP/MySQL Order by column in a different table

我正在运行这个SQL代码:sql="SELECT*FROMchannel_did";$rs=mysql_query($sql,$pbx01_conn)ordie(mysql_error());$counter=0;$display='';while($result=mysql_fetch_array($rs)){$sql2="SELECT*fromclientwhereid='".$result["client_id"]."'";$rs2=mysql_query($sql2,$pbx01_conn)ordie(mysql_error());$result2=mysql_fetch_ar