php - MySQL错误信息,错误代码1064,LIMIT 20 OFFSET 0

标签 php mysql database

我想加入 2 个表。一个包含用户,另一个包含约会 - 约会表包含 3 列(ApID,这是主键),bookFrom,bookedFor - 这些最后 2 列引用用户表,我认为它们的含义很容易 self 解释。 以下是详细的表格:

    CREATE TABLE `users` (
 `user_ID` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(45) NOT NULL,
 `lastname` varchar(45) NOT NULL,
 `email` varchar(255) DEFAULT NULL,
 `password` varchar(100) DEFAULT NULL,
 `hash` varchar(32) DEFAULT NULL,
 `usertype` enum('1','2','3','4') DEFAULT NULL,
 PRIMARY KEY (`user_ID`),
 KEY `fk_users_usertype1_idx` (`usertype`),
 CONSTRAINT `fk_users_usertype1` FOREIGN KEY (`usertype`) REFERENCES `usertype` (`type_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

    CREATE TABLE `appointments` (
 `apID` int(11) NOT NULL AUTO_INCREMENT,
 `Bookfrom` int(11) ,
 `bookedfor` int(11) ,
 PRIMARY KEY (`apID`),
 KEY `fk_appointments_user1_idx` (`Bookfrom`),
 KEY `bokkedfor` (`bookedfor`),
 CONSTRAINT `appointments_ibfk_3` FOREIGN KEY (`bookedfor`) REFERENCES `users` (`user_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `appointments_ibfk_2` FOREIGN KEY (`Bookfrom`) REFERENCES `users` (`user_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

我要查找的是特定用户(该用户的电子邮件地址为 papageorgiou40@testmail.com)是否列在约会表中(意思是已预约),我正在尝试使用此语句执行此操作:

select  appointments.Bookfrom,appointments.Bookedfor 
from appointments,users 
where users.email='papageorgiou40@test.com' 
and appointments.Bookfrom=users.user_ID,
appointments.Bookedfor=users.user_ID;

但我收到以下消息:

Error code 1064, SQL state 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' appointments.Bookedfor=users.user_ID LIMIT 20 OFFSET 0' at line 4

您可能想知道为什么有 2 列 bookedfrom 和 bookedfor。原因是在用户表中有 2 种类型的用户,业务用户和普通用户,所以逻辑是普通用户为业务用户预约。我不确定这是适合这种情况的数据库设计,但是是不同的讨论

最佳答案

我猜你想要一个 OR 。或者你可以这样做:

... AND users.user_ID IN (appointments.Bookfrom,appointments.Bookedfor)

关于php - MySQL错误信息,错误代码1064,LIMIT 20 OFFSET 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634931/

相关文章:

php - 列计数与插入表的第1行的值计数不匹配

database - 将大量(10000+)种不同对象类型存储到数据库中的最佳实践是哪种?

php - 使用ajax codeigniter检查用户名和密码是否匹配

php - 将 csv 文件导入 MySQL 时更改创建表中的数据类型 - PHP

mysql 匹配文本中的特殊字符%

sql - Oracle 更新中神秘的笛卡尔积

java - Hibernate session 使用什么模式

php - 如何在使用 composer 省略选择文件的同时需要一个包

php - MySQL 查询显示结果,但我无法通过它们进行限制?

php - foreach MySql 的替代品