【问题标题】:MySQL db join queryMySQL 数据库连接查询
【发布时间】:2013-10-23 08:57:39
【问题描述】:

我正在使用 Mysql 中的 Employee 数据库。我的 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    |       |
+-------+-------------+------+-----+---------+-------+

我必须分别从 edept.dept、edesig.design、esal.basic、esal.pf 表中获取 dept,design,basic,pf 的值。
我对必须从其他表中检索值的所有字段使用外键。我尝试了一个示例内部联接查询。但我得到的输出如下:

 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

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试这个::

        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
    

    【讨论】:

    • mysql> select * from edetails inner join edept on edetails.dept=edept.id group by dept 抛出错误 ERROR 1052 (23000): Column 'dept' in group statement is ambiguous
    • No Shashi 我仍然得到相同的输出
    • @Swetha: 告诉我你得到的输出......那对我来说会更容易
    • @Swetha: 也给我们看看edebt 的创建表
    • 输出与我在问题中提到的相同。
    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2014-03-06
    • 2021-03-18
    • 2011-09-22
    相关资源
    最近更新 更多