我有以下查询来获取所有成员和一些信息。
$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的原始查询中的组的一部分,如果不再是,从memberlist中删除具有该id的成员,最简单的方法是什么?在下面的例子中,我想从成员列表中删除阿诺德,因为他不再是成员中的group_id 1。
members memberlist
id | name | group_id id | name | group_id
----------------------- ----------------------
1 | Donald | 1 1 | Donald | 1
13 | Jeff | 1 13 | Jeff | 1
25 | Arnold | 3 25 | Arnold | 1发布于 2019-04-09 01:15:00
您可以在每次删除一个时执行类似如下的查询:
DELETE ml FROM memeberlist ml
LEFT JOIN members m ON m.id = ml.id
WHERE m.id IS NULLhttps://stackoverflow.com/questions/55578362
复制相似问题