我正在尝试创建一个预订系统,我有一个供用户登录的表,另一个用于提倡登录的表和另一个用于预订信息的表。我希望从用户输入的数据显示给特定的拥护者。我尝试过使用SQL JOIN但它没有显示任何信息。
MY TABLES
advocate
bookingcalendar
这是SQL代码
$sql = ("SELECT bookingcalendar.*,advocate.userName, FROM bookingcalendar JOIN advocate ON bookingcalendar.*=advocate.userName WHERE $current_epoch BETWEEN start_day AND end_day");
$result = mysqli_query($conn, $sql);
答案 0 :(得分:0)
bookingcalendar.*=advocate.userName
部分不正确使用bookingcalendar.Column_name
其中Column_name
在表bookingcalendar和提供者中很常见,在您的案例中可能是userName
SELECT bookingcalendar.*,advocate.userName
FROM bookingcalendar JOIN advocate
ON bookingcalendar.userName = advocate.userName
WHERE $current_epoch BETWEEN start_day AND end_day
答案 1 :(得分:0)
您需要使用两个表之间共同的字段作为连接条件的键。例如,使用某种userID
:
SELECT bookingcalendar.*, advocate.userName
FROM bookingcalendar
JOIN advocate ON bookingcalendar.userID=advocate.userID
WHERE $current_epoch BETWEEN start_day AND end_day
我建议你不要使用userName作为密钥来加入你的两个表,因为多个用户最终可以拥有相同的userName
,并且两个字符串上的连接需要更多时间而不是两个数字的连接。
这不仅仅是一个轻率的建议。你绝对应该使用一些数字ID而不是用户名加入你的表。
- 编辑 -
实际上,我真的不知道“倡导者”是什么,所以也许你的连接键甚至不应该是某个用户ID /名称。要知道这点,我需要更好地理解advocate
,user
和bookingCalendar
之间的关系。也许对其专栏的描述可以帮助我们回答问题的这个隐藏部分。