【发布时间】:2011-12-06 00:52:12
【问题描述】:
我有两张桌子。我尝试从其中之一中选择一些记录。然后,该选择的 ID 部分应该用于选择另一个表的一些记录。为此,我写了一个需要很长时间才能执行的语句。我什至看不到结果。 此外,这打破了我的 phpmyadmin 从本地主机。
代码如下:
SELECT * FROM uniquestructures as uns WHERE uns.ProteinID IN (SELECT unp.* FROM uniqueproteins as unp HAVING LENGTH(unp.PDBASequence) < 20) as T)
为了清楚起见,首先它选择所有列的序列长度小于20的记录。后来,根据所选记录的ID,我正在搜索具有相同ID(与ProteinID)的记录
非常感谢您的帮助
【问题讨论】:
-
首先 - 您可能想阅读 JOIN 语法。其次,在 uniquestructures 和 uniqueproteins 中有多少行?另外 - 尝试将 unp.* 替换为(猜测)unp.ProteinID
-
啊。刚抽了。 uns.ProteinId 是否可与 uniqueproteins 表中所有列的串联相媲美?
-
我也使用了 LEFT JOIN。 Uniquestructures 和 uniqueproteins 具有相同的大小和相同的 ID 信息——20370 行。但是序列长度小于 20 的行是 2228。所以,我需要选择 2228 中的每个 id 并返回具有该 id 的唯一结构中的行。
标签: mysql having nested-statement