mysql获取多张表中的数据_mysql–从具有递归关系的两个表
中获取数据
address函数的用法我有⼀个MySQL 5.1数据库,⽤于PHP应⽤程序后⾯跟踪权限以及需要发布给组织中具有不同职位的员⼯的其他项⽬.要跟踪某个职位的特权,我正在使⽤此表格:
mysql> desc position_privs;
+--------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+-------+
| position | int(11) | NO | | NULL | |查符合两个条件之一的字符串函数
mysql语句多表查询| priv | int(11) | NO | | NULL | |
css隐藏垂直滚动条| date_added | int(11) | NO | | 0 | |
| date_removed | int(11) | YES | | NULL | |
+--------------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)
position指的是位置表中的id列,priv指的是privs表中的id列.有些职位还继承了其他职位的特权,⽽这些职位⼜可以继承其他职位,等等.我有这个表:
mysql> desc position_inherits;
+--------------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------+------+-----+---------+-------+
| position | int(11) | NO | | NULL | |
| inherit_privs_from | int(11) | NO | | NULL | |
| date_added | int(11) | NO | | 0 | |
| date_removed | int(11) | YES | | NULL | |
+--------------------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)redis特点
如果继承总是只有⼀个层次,我可以通过⼀个简单的JOIN来做到这⼀点,但是我很难处理从⼀个位置继承的位置,⽽这个位置⼜从另⼀个位置继承.
有没有⼀种使⽤MySQL的⽅便的⽅法,或者我应该坚持使⽤SELECT * FROM $table并在应⽤程序代码中执⾏此操作?
解决⽅法:
坏消息
MySQL不⽀持递归数据或表结构.它也不⽀持递归SQL.
好消息
有希望.我已经编写了⼀些关于如何检索数据层次结构的存储函数
警告
>你必须对你的表实现这⼀点.
if函数大于等于且小于>您还需要确保以树形式⽽不是图形形式输⼊数据.
>对于position_inherits表中没有⽗级的任何⾏,只需将该⾏的inherit_privs_from设置为零(0).这样,您就可以建⽴根位置.标签:php,mysql,join
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论