希望使用EMPID从`users`表`leave`表

问题描述:

我是比较新的phpmysql.i需要一些帮助......希望使用EMPID从`users`表`leave`表

我有两个表,即usersleave。在users表我有以下柱

  1. EMPID(INT)
  2. 用户名(VARCHAR)
  3. 密码(VARCHAR)
  4. MAC(VARCHAR)
  5. IP(VARCHAR)

leave表I具有以下柱

  1. 盖(INT)
  2. empname(VARCHAR)
  3. 用户名(VARCHAR)
  4. 点头(INT )
  5. sdate(date)
  6. edate(date)
  7. 原因(VARCHAR)
  8. 行动(VARCHAR)

现在我想用在empIDleave table.how我可以使用它。我不得不说,我已经应用代码,但它不工作。其给出以下错误..

1072 - 键列 'EMPID' 不表

和代码存在

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT, 
empname VARCHAR(255) NOT NULL, 
username VARCHAR(255) NOT NULL, 
nod INT NOT NULL, 
sdate DATE, 
edate DATE, 
reason VARCHAR(255) NOT NULL, 
PRIMARY KEY(lid), 
FOREIGN KEY(empID) REFERENCES users(empID) 
); 

有啥错?请帮助我..

+6

我没有看到在''表leave' empID'列。 – hims056 2013-04-22 04:19:15

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT, 
empname VARCHAR(255) NOT NULL, 
username VARCHAR(255) NOT NULL, 
nod INT NOT NULL, 
sdate DATE, 
edate DATE, 
reason VARCHAR(255) NOT NULL, 
PRIMARY KEY(lid), 
FOREIGN KEY(empID) REFERENCES users(empID) 
); 

应该

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT, 
empID int, // here you need one like this 
empname VARCHAR(255) NOT NULL, 
username VARCHAR(255) NOT NULL, 
nod INT NOT NULL, 
sdate DATE, 
edate DATE, 
reason VARCHAR(255) NOT NULL, 
PRIMARY KEY(lid), 
FOREIGN KEY(empID) REFERENCES users(empID) 
); 

你缺少一个empID列。

+0

你解决了吗? – Vinay 2013-04-23 07:22:44

你的SQL创建休假表中包含了正确的位创建的外键关系:

FOREIGN KEY(empID) REFERENCES users(empID) 

但只创建表之间的关系的基础上,EMPID列。它不会为您创建empID列!您还需要一个线之上,来定义的EMPID列离开表,像这样:

create table `leave`(
lid INT NOT NULL AUTO_INCREMENT, 
empID INT NOT NULL, 
empname ... 
... more lines , 
FOREIGN KEY(empID) REFERENCES users(empID)