mysql - 如何使用简写在 mysql 查询中调用字段

标签 mysql subquery alias shorthand

我有这个问题,

按如下方式使用查询:

    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,但这一切都使它在我需要答案的上下文中变得非常复杂的解决方案。

最佳答案

为什么不在两个表上都添加别名?

SELECT a.* FROM mytable a WHERE a.samefield='2' AND
(SELECT COUNT(*) FROM mytableB b WHERE b.samefield=a.samefield);

关于mysql - 如何使用简写在 mysql 查询中调用字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191400/

相关文章:

mysql - VB.net 将条目从一个表插入另一个表

php - Mysql 子查询、类别及其项目

MySQL:START TRANSACTION - UPDATE - ROLLBACK:非事务表

c# - 如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名

java - JDBC 连接到 MySQL 需要哪些文件?

php - 安全登录?有任何想法吗?任何方法都会很好

php - 我的登录脚本包含用户名、密码和 PIN 码,但无法使用 PIN 码登录(不知何故)

sql - 选择第一组

c++ - 我可以在不产生引用存储成本的情况下为变量设置别名吗?

windows - 用于打印出 sizeof 文件夹 cygwin 的 cmd 别名