加入两个sql表并使用表

时间:2018-03-28 12:52:53

标签: php mysql sql

我正在尝试创建一个预订系统,我有一个供用户登录的表,另一个用于提倡登录的表和另一个用于预订信息的表。我希望从用户输入的数据显示给特定的拥护者。我尝试过使用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);

2 个答案:

答案 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 /名称。要知道这点,我需要更好地理解advocateuserbookingCalendar之间的关系。也许对其专栏的描述可以帮助我们回答问题的这个隐藏部分。