我有以下查询来获取所有成员和一些信息。
$stmt = $conn->prepare("select m.`name`, m.`id`, m.`group_id`, p.`field_1`, g.`data1`, g.`data2`
from members m
inner join pfields p on m.`id` = p.`id`
inner join groups g on g.`g_id` = m.`group_id`
where m.`group_id` = 1");
$stmt->execute();
$result = $stmt->get_result();
我有以下代码将新成员插入我的成员列表。
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
//code update members
$stmt = $conn->prepare("INSERT INTO memberlist (id, name) VALUES (?, ?)");
$stmt->bind_param("ss", $row['id'], $row['name']);
$stmt->execute();
}
但是,我注意到,如果成员不再是社区的一部分,则该名称永远不会被删除,因为我只是添加新名称。
DELETE
会发生删除,但是最简单的方法是检查该成员是否仍属于members
原始查询中的组的一部分,如果不再存在,则用该{{1 }}来自id
?在下面的示例中,我想从成员列表中删除Arnold,因为他不再在成员的group_id 1中。
memberlist
答案 0 :(得分:2)
您可以在每次被删除时进行如下查询:
DELETE ml FROM memeberlist ml
LEFT JOIN members m ON m.id = ml.id
WHERE m.id IS NULL