什么是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 | | + --------- + ---------- + ------ + ------ + --------- + ----- - +
答案 0 :(得分:1)
m
和r
是表名meeting
和room
的别名。在这种情况下,通过这些名称引用它们在语法上很方便,而不是写出整个表名。
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}}。如果你这样做,这将特别有用。两次加入房间表:然后你可以给两个实例提供不同的别名。