php - 向复杂的 mysql 连接/ View 添加数据

标签 php mysql inner-join

我希望有人对我遇到的这种情况有经验。

我有 mysql 用户数据库,其中数据跨多个表。

我正在本地计算机上使用一个工具来查询此信息,然后根据 ID 号将用户 checkin 事件。

接下来我将分别通过“数据库”和“本地”引用上述内容。

我可以通过一组复杂的内部联接查询数据库并获取我需要的数据。为了帮助实现这一点,我创建了一个 View ,效果很好。

我的本​​地可以毫无问题地读取此 View 编译的数据。

现在这是我的问题。本地想要修改此数据集中的数据。它要修改的两个字段当前不存在。本地工具无法创建新条目,只能更新/修改现有条目。

现在,我认为我无法用我创建的 View 做我想做的事情。我想我需要创建一个新表来保存所有这些组合数据,包括两个新字段,以便它可以根据需要修改它们。如果是一次性同步,这会很容易,但当然情况并非如此。

我需要定期查看组合数据并用它更新我的新表。我只需要更新每行中的 1 个字段(真/假),然后添加任何其他行。理想情况下,我想删除已删除的行,但这可能会更困难。

至于更新我的新静态表的字段,我想我会将每一行的字段设置为 false,然后查询该字段设置为 true 的所有行,并将静态表中的这些记录更新为 true。

至于向表中添加新条目,我想我会查询所有记录,查看具有最高唯一标识符的行,然后执行另一个查询以选择具有较高 uid 的所有行。

至于删除行,我不知道。

我是否完全偏离了基础,使这种方式变得比需要的更加复杂,或者是否有更简单的方法来实现这一点?

自定义加入供引用:

SELECT DISTINCT c.fullname AS name, usr.id, usr.username, 
usr.firstname, usr.lastname, usr.email
FROM app_course AS c
INNER JOIN app_context AS cx ON c.id = cx.instanceid
INNER JOIN app_role_assignments AS ra ON cx.id = ra.contextid
INNER JOIN app_role AS r ON ra.roleid = r.id
INNER JOIN app_user AS usr ON ra.userid = usr.id
INNER JOIN app_user_enrolments AS enr ON usr.id = enr.userid

最佳答案

上面评论中的@Barmar 触发器就是答案。

关于php - 向复杂的 mysql 连接/ View 添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17285285/

相关文章:

Mysql创建具有外键约束的表时出现错误150

javascript - Ajax请求成功但收到的responseText为空?

mysql - 如何使用内部联接使选择查询更高效

php - 将复选框值存储到mysql数据库

php - MYSQL+无法从PHP连接

php - 带有 PHP 扩展的 CSS 缩小

mysql - 用pl/sql中的子查询替换不匹配的值

mysql - 使用 max() 获取表中的最新行,加入另一个表

mysql内连接查询运行缓慢

php - mysqli_fetch_row() 访问sql数据库中的特定行