您好我正在尝试选择已经不在数据库中的不同值。因此,对于这个实例,我正在尝试选择尚未预订且未在预订表中的行。有人能告诉我如何纠正以下代码吗?
行:
<?php
$strRow = "SELECT DISTINCT RowNumber FROM Seat WHERE RowNumber NOT EXISTS Booking";
$result = $con->query($strRow);
?>
<?php while ($row = $result->fetch_row()): ?>
<?php $i = $row[0]; ?>
<option><?php echo $i; ?></option>
<?php
$i++;
endwhile;?>
</select>
这是用于创建预订表和座位
的sql语句CREATE TABLE Seat(
RowNumber char(6) not null,
Zone char(12) not null,
PRIMARY KEY (RowNumber),
FOREIGN KEY (Zone) REFERENCES Zone(Name)
);
CREATE TABLE Booking(
BookingId int AUTO_INCREMENT not null,
PerfDate date not null,
PerfTime time not null,
Name varchar(255) not null,
Email varchar(255) not null,
RowNumber char(6) not null,
PRIMARY KEY (BookingId),
FOREIGN KEY (PerfDate,PerfTime) REFERENCES Performance(PerfDate,PerfTime),
FOREIGN KEY (RowNumber) REFERENCES Seat(RowNumber)
);
答案 0 :(得分:1)
您好我找到了答案,基本上下面的查询只会选择预订表中尚未存在的RowNumber。但是现在我遇到了另一个问题哈哈,它没有考虑表演的日期和时间是否不同。
行:
<?php
$strRow = "SELECT DISTINCT RowNumber FROM Seat WHERE NOT EXISTS(SELECT RowNumber FROM Booking WHERE Seat.RowNumber = Booking.RowNumber)";
$result = $con->query($strRow);
?>
<?php while ($row = $result->fetch_row()): ?>
<?php $i = $row[0]; ?>
<option><?php echo $i; ?></option>
<?php
$i++;
endwhile;?>
</select>