从2个表中获取记录
问题描述:
我有2个表,分别称为预订和guest2。所以我想显示今天checkindate的两个表的数据。我写过这样的。但它显示所有记录。从2个表中获取记录
<?php
echo $today=date("j-n-Y");
include("connect.php");
$SQL="SELECT bookings.bookingid, guest2.fname, guest2.lname
FROM bookings
LEFT JOIN guest2
ON bookings.guestid=guest2.guestid
AND bookings.checkindate = '$today'
ORDER BY bookings.bookingid ";
$run=mysql_query($SQL,$con) or die ("SQL2 error");
while($rec=mysql_fetch_array($run))
{
echo "booking ID".$rec['bookingid']."";
echo "Guest Name".$rec['fname']."";
echo " ".$rec['lname']."";
}
?>
任何想法?
答
您正在使用left join
,因此所有记录都在第一个能够返回的记录中。移动状态上第一台到WHERE
条款:
SELECT b.bookingid, g.fname, g.lname
FROM bookings b LEFT JOIN
guest2 g
ON b.guestid = g.guestid
WHERE b.checkindate = '$today'
ORDER BY b.bookingid;
另外,该LEFT JOIN
可能是不必要的 - 假设所有预订具有有效的客人。如果是这样,您可以将原始查询中的LEFT JOIN
更改为JOIN
。
+0
没有亲爱的..这是一个愚蠢的错误$ today = date(“j-n-Y”);这必须更改为$ today = date(“Y-n-j”);根据我的表...现在它的工作..谢谢 –
答
$SQL="SELECT bookings.bookingid, guest2.fname, guest2.lname
FROM bookings
INNER JOIN guest2
ON bookings.guestid=guest2.guestid
where bookings.checkindate = '$today'
ORDER BY bookings.bookingid ";
1)使用内部联接 2)添加WHERE条件
不行啊..它是今天愚蠢的错误$ =日期( “J-正Y”);这必须更改为$ today = date(“Y-n-j”);根据我的表...现在它的工作..谢谢 –