我有这个问题,
使用如下查询:
mysql_query("SELECT * FROM mytable WHERE samefield='2' AND (SELECT
COUNT(*) FROM mytableB as d WHERE d.samefield=samefield)");
返回我错误的结果,理想的工作如下:
mysql_query("SELECT * FROM mytable WHERE samefield='2' AND (SELECT
COUNT(*) FROM mytableB as d WHERE d.samefield=mytable.samefield)");
请注意,我必须如何显式输入 mytable 的名称才能知道精确查找并从数据库中获得正确的结果,是否有明确的通配符用作最外层的父查询以确定 d.samefield 应该等于在不知道它的别名的情况下到第一个父级, d.samefield=thewildcard.samefield 是我要寻找的,或者以某种方式指定它应该在其父级上查找。
因为如果我使用 d.samefield=samefield 它只是不坚持父的值,因为看起来问题是有一个同名的字段,对表 a 的查询和对表 b 的子查询,如果它工作最简单的是必须始终在子查询上声明一个别名,并让第一个父查询字段成为 mysql 要查找的字段,但它似乎不能以这种方式工作。
我知道整个问题听起来有点愚蠢,但这对我来说很重要,因为我已经在这个问题上待了 3 个小时,并尝试了诸如 php 函数之类的方法来发送表名,我想将子查询附加到主表中查询,甚至还尝试过 php 的 eval 但这一切都使得它在我需要答案的上下文中变得非常复杂。