有人可以向我解释这个sql命令正在做什么

时间:2014-10-11 23:43:13

标签: mysql

什么是m。和r。意思?它是通过第一个字母引用表名吗?还有其他命令,如dayname

我有一个叫做房间,员工,会议和参与者的表。

select dayname(m.date), count(*) from meeting m, room r where m.room_id=r.room_id group by weekday(m.date) order by weekday(m.date);

感谢您抽出宝贵时间回答我

EMPLOYEE: + ----------- + ---------- + ------ + ------ + --------- + --- ---- + |领域|输入|空|钥匙|默认|额外的| + ----------- + ---------- + ------ + ------ + --------- + --- ---- + | staff_id | int(11)|不| PRI | NULL | | |资历| int(11)|是的| | NULL | | |姓氏| char(30)|是的| | NULL | | |名字| char(30)|是的| | NULL | | + ----------- + ---------- + ------ + ------ + --------- + --- ---- +

MEETING: + ------------ + ---------- + ------ + ------ + --------- + - ----- + |领域|输入|空|钥匙|默认|额外的| + ------------ + ---------- + ------ + ------ + --------- + - ----- + | meeting_id | int(11)|不| PRI | NULL | | | room_id | int(11)|是| MUL | NULL | | |名字| tinytext |是的| | NULL | | |日期|日期|是的| | NULL | | + ------------ + ---------- + ------ + ------ + --------- + - ----- +

单位: + ------------ + --------- + ------ + ------ + --------- + --- ---- + |领域|输入|空|钥匙|默认|额外的| + ------------ + --------- + ------ + ------ + --------- + --- ---- + | meeting_id | int(11)|是| MUL | NULL | | | staff_id | int(11)|是| MUL | NULL | | + ------------ + --------- + ------ + ------ + --------- + --- ---- +

房间: + --------- + ---------- + ------ + ------ + --------- + ----- - + |领域|输入|空|钥匙|默认|额外的| + --------- + ---------- + ------ + ------ + --------- + ----- - + | room_id | int(11)|不| PRI | NULL | | |名字| char(50)|是的| | NULL | | + --------- + ---------- + ------ + ------ + --------- + ----- - +

2 个答案:

答案 0 :(得分:1)

mr是表名meetingroom的别名。在这种情况下,通过这些名称引用它们在语法上很方便,而不是写出整个表名。

SELECT * FROM my_table t WHERE t.my_column_name = 123;

在上面的示例中,t是指定my_table的便捷方式。然后,您可以通过指定t.my_column_name来访问列(属性)。

请参阅此处以获得一般性解释:
http://en.wikipedia.org/wiki/Alias_(SQL)


关于dayname,我很想说这是一个用户定义的SQL函数,位于代码的其他地方。据我所知,这不是保留。我建议你查看你拥有的其余SQL,看看你是否能找到它的定义。

答案 1 :(得分:0)

是的,它们是表名的别名。你自己在'来自'部分:

from meeting m, room r

在此,您将m定义为meeting表的别名和r的{​​{1}}。如果你这样做,这将特别有用。两次加入房间表:然后你可以给两个实例提供不同的别名。