如何运行SELECT查询,选择一个ID,用于删除具有该ID的另一个表中的行,然后在其自己的表中删除该ID的行?
到目前为止我的代码:
$sqel = "SELECT fldRadioCampID FROM tblradiocamp WHERE fldBestelID = '$urlIDbon' AND fldSpotnaam = '$urlDelSpotnaam'";
$result = mysql_query($link, $sqel);
if (mysql_num_rows($result) > 0) {
// output data of each row
while($row = mysql_fetch_assoc($result)) {
$sqeldelreg = "DELETE FROM tblradioregio WHERE fldRadiocampRegID=" . $row['fldRadioCampID'];
if (!mysql_query($sqeldelreg)) {
echo "Error: " . $sqeldelreg . "<br>" . mysql_error($link);
}
}
} else {
}
$sqeldel = "DELETE FROM tblradiocamp WHERE fldBestelID='$urlIDbon' AND fldSpotnaam='$urlDelSpotnaam'";
if (!mysql_query($sqeldel)) {
echo "Error: " . $sqeldel . "<br>" . mysql_error($link);
我认为我的问题的含义是明确的,如果不是请在下面评论,任何帮助表示赞赏!!
答案 0 :(得分:0)
您可以创建程序并调用一次。
MYSQL
CREATE PROCEDURE `deleteRowById` (in urlDelSpotnaam varchar(64), in urlIDbon varchar(64) )
BEGIN
declare a int(11);
SELECT fldRadioCampID into a FROM tblradiocamp WHERE fldBestelID = urlIDbon AND fldSpotnaam = urlDelSpotnaam;
if a > 0 then
DELETE FROM tblradioregio WHERE fldRadiocampRegID=a;
DELETE FROM tblradiocamp WHERE fldRadioCampID=a;
END IF;
END
PHP
<?php
$sqel = "call deleteRowById('$urlDelSpotnaam','$urlIDbon')";
$result = mysql_query($link, $sqel);
答案 1 :(得分:0)
运行此查询:
DELETE FROM tblradioregio
WHERE fldRadiocampRegID = (SELECT
fldRadioCampID
FROM tblradiocamp
WHERE fldBestelID = '$urlIDbon' AND fldSpotnaam = '$urlDelSpotnaam');
请注意,这也可以使用联接而不是子选择来完成;如果子查询可以返回null:
DELETE FROM tblradioregio
join tblradiocamp b
on (tblradioregio.fldRadiocampRegID = b.fldRadioCampID)
WHERE b.fldBestelID = '$urlIDbon'
AND b.fldSpotnaam ='$urlDelSpotnaam';