在这种情况下,表1是表2的一对多,表2是table3的一对多。表3的记录在创建时分配给表1,并在以后的过程(此过程)中的操作中分配给表2。在查询时,表1和表2的主键都是已知的。如果我在同一事务中先运行UPDATE
,然后运行SELECT
,那么SELECT
是否会反映UPDATE
?当我获取结果时,UPDATE
会变得混乱吗?
SQL:
UPDATE table3
SET fk_table2 = ?
WHERE fk_table1 = ? AND fk_table2 IS NULL;
SELECT field1, field2, field3, field4,
COALESCE(field5, (SELECT default_table3_field5 FROM table1 WHERE table1.pk = table3.fk_table_1)) AS field5
FROM table3
WHERE fk_table1 = ? AND fk_table2 = ?;
PHP:
$prep = $pdo->prepare($sql);
$prep->execute([
$table2_pk,
$table1_pk,
$table1_pk,
$table2_pk
]);
$detail = $prep->fetchAll(PDO::FETCH_ASSOC);