首页 文章

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

提问于
浏览
0

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

我有 table ,房间,员工, Session 和参与者 .

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);

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

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

Session :------------ ---------- ------ ----- --------- ------ - |领域|输入|空|钥匙|默认|额外的| ------------ ---------- ------ ----- --------- ------- | 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 回答

  • 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的其余部分,看看你是否能找到它的定义 .

  • 0

    是的,它们是表名的别名 . 您在“来自”部分自己定义了它们:

    from meeting m, room r
    

    在这里,您将 m 定义为 meeting 表的别名,将 r 定义为 room . 如果你这样做,这可能会特别有用两次加入房间表:然后你可以给两个实例提供不同的别名 .

相关问题