2013-10-23 138 views
0

我在Mysql中使用Employee数据库。我的数据库包含以下表MySQL db连接查询

mysql> describe edept;  
+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| id | int(11)  | NO | PRI | NULL |  | 
| dept | varchar(20) | NO |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 


mysql>describe esal; 
+-------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------+---------+------+-----+---------+-------+ 
| id | int(11) | NO | PRI | NULL |  | 
| basic | int(11) | NO |  | NULL |  | 
| pf | int(11) | NO |  | NULL |  | 
+-------+---------+------+-----+---------+-------+ 

mysql> describe edesig; 
+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| id | int(11)  | NO | PRI | NULL |  | 
| desig | varchar(20) | NO |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 


mysql> select * from edetails inner join edept on edetails.dept=edept.id; 
+----+--------+-----+------+-------+-------+----+----+------------------+ 
| id | name | age | dept | desig | basic | pf | id | dept    | 
+----+--------+-----+------+-------+-------+----+----+------------------+ 
| 1 | swetha | 21 | 3 |  2 |  2 | 2 | 3 | Business Process | 
+----+--------+-----+------+-------+-------+----+----+------------------+ 


mysql> describe edetails; 
+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| id | int(11)  | NO | PRI | NULL |  | 
| name | varchar(20) | NO |  | NULL |  | 
| age | int(11)  | NO |  | NULL |  | 
| dept | int(11)  | NO | MUL | NULL |  | 
| desig | int(11)  | YES | MUL | NULL |  | 
| basic | int(11)  | NO | MUL | NULL |  | 
| pf | int(11)  | NO | MUL | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 

我得值部门,DESIG,基本,PF分别从表中edept.dept,edesig.desig,esal.basic,esal.pf。
我用所有的字段,我必须从其他tables.And检索值的外键。我试着内部联接查询示例。但我得到的输出如下所示:

mysql> select * from edetails inner join edept on edetails.dept=edept.id; 
    +----+--------+-----+------+-------+-------+----+----+------------------+ 
    | id | name | age | dept | desig | basic | pf | id | dept    | 
    +----+--------+-----+------+-------+-------+----+----+------------------+ 
    | 1 | swetha | 21 | 3 |  2 |  2 | 2 | 3 | Business Process | 
    +----+--------+-----+------+-------+-------+----+----+------------------+ 

My edept table contains the following: 


mysql> select * from edept; 
+----+------------------+ 
| id | dept    | 
+----+------------------+ 
| 3 | Business Process | 
+----+------------------+ 



How can i eliminate duplicate columns. i need the value "business process" in the dept field of the edept table 

回答

0

尝试此::

select 
    edetails.id, 
    edetails.name, 
    edetails.age, 
    edetails.dept, 
    edesig.desig, 
    edetails.basic, 
    edetails.pf, 
    edept.dept 

    from edetails 
     inner join edept on edetails.dept=edept.id 
INNER JOIN edesig on edesig.id=edetails.desig 
+0

的MySQL> SELECT * FROM edetails由部门内部联接edept上edetails.dept = edept.id基引发错误ERROR 1052 (23000):集团声明中的“部门”列不明确 – Swetha

+0

@Swetha:已更新我的回答,请检查 –

+0

否Shashi我仍然得到相同的输出 – Swetha