无法理解这个MySQL Query目的

时间:2013-10-02 13:32:45

标签: php mysql

我正在做网络开发人员的实习,我有点新,我在这里要求你的经验澄清我的怀疑;当我在一个其他人让我发现这个查询的网站上工作时:

$query = "SELECT a.upload_date, a.zipfile, a.lang, b.*
          FROM something_uploadform as a , something2_stayinformed as b
          WHERE a.uid_head =b.uid and a.zipfile<>'' order by ".$orderby." desc";

任何人都可以帮我理解吗?我以为这段代码会选择一条记录并将其附加到a,不是吗?

谢谢大家。

2 个答案:

答案 0 :(得分:4)

在较高级别,此查询在两个表上执行隐式JOIN。让我们分解一下:

数据来自两个表格( AS为表格提供别名):

  • something_uploadform为“a”(此表现在称为a
  • something2_stayinformed为“b”(此表现在称为b

正在选择的列:

  • a.upload_date
  • a.zipfile
  • a.lang
  • b.*(表b中的所有列)

这些表正在列上加入:

  • a.uid_head = b.uid

正在应用的过滤器:

  • a.zipfile <> ''(列zipfile不为空)

正在应用的排序:

  • $orderby DESC(传递变量,按降序排序)

答案 1 :(得分:1)

something_uploadform as aa定义为something_uploadform的别名,因此您在选择列时无需指定完整的表名。