mysql中的缩写选择,它们是什么意思?

时间:2011-09-23 00:03:33

标签: mysql select

我有一个问题需要了解此查询中会发生什么:

$db->select("select r.id, m.mailing_id, r.email,
m.done from lp_relations r, lp_mailings_relations m 
where m.relation_id=r.id and m.mailing_id=? order by r.name",
$rs[$i]["id"]

关于字母r。和m。在fieldnamesthese之前,这些不是表名,但我怀疑是某些联接的缩写,但我从来没有见过它们。

我可以重写我自己的查询以完成工作,但我想知道这意味着什么,所以我可以解决问题本身(邮件发送两次)

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:11)

看看 FROM lp_relations r, lp_mailings_relations m
在真正的表名后,您会找到一个新名称,用于使SELECT部分​​更短且易于阅读 因此,表lp_relations变为r,表lp_mailings_relations变为m!

你可以写:

SELECT r.id, r.email, m.mailing_id, m.done 
FROM lp_relations r INNER JOIN lp_mailings_relations m 
ON m.relation_id=r.id
WHERE m.mailing_id=? 
ORDER BY r.name

答案 1 :(得分:2)

它们是表名的“别名”。请注意您在查询中如何说“from lp_relations r...”?现在结尾的“r”别名为lp_relations。所以你可以用“r。”来引用该查询中的lp_relations。这是让事情变得更具可读性的简写。

答案 2 :(得分:1)

r代表lp_relations表,m代表lp_mailings_relations表。别名可以通过分离字段来帮助您进行连接。例如,如果您有一个在产品表中找到相同字段名称的用户表,则别名有助于将其分开(非歧义)。