我有两张桌子。


房间包括:111室,102室,201室,122室
预订包含:102室,201室


如果我发出以下SQL语句:

Select roomname from Booking where checkin='12/03/2014' and checkout='15/03/2014'


我得到两排


102室
201室


我想使用这些行来获取“房间”表中除“ 102房间”和“ 201房间”之外的所有其他房间名称。

这是我的代码:

   $a1=12/03/2014
   $a2=15/03/2014
   $sql= mysql_query("SELECT * FROM Booking WHERE checkin = '$a1' AND  checkout ='$a2'");
   while ($myrow = mysql_fetch_array($sql))
   {
      $pid = $myrow["roomname"];
      $sql1= mysql_query("SELECT * FROM Rooms WHERE roomname != '$pid'");
      while($me = mysql_fetch_array($sql1))
      {
         $pid2 = $me["roomname"];
         echo $pid2;
      }//
   }//end while


我将得到两组结果,第一组包含201室,第二组包含102室:

Room 111 Room 201 Room122
Room 111 Room 102 Room122


我只想要一个不包含201室和102室的结果:

Room 111 and Room 102

最佳答案

您可以尝试以下查询:

SELECT roomname FROM Booking WHERE roomname NOT IN (SELECT roomname FROM Booking WHERE checkin = '12/03/2014' AND checkout = '15/03/2014');


或至少它应该为您指明正确的方向。

关于php - 从表a中选择并使用结果从表中取反,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23015713/

10-09 18:59