MYSQL从同一个表中加入多个列

Ahm*_*fiz 4 php mysql join laravel eloquent

我试图为获得技能名skill1,skill2,和skill3从表2通过加入.

当我试图skill1独自一人时,它工作正常.但是,当我尝试获取下一列的详细信息时,1066不会出现唯一的表/别名错误.


表1(用户表)

======================================
ID  Name       skill   skill2   skill3
======================================
1   Ed           1       4       3    
--------------------------------------
Run Code Online (Sandbox Code Playgroud)

表2(技能细节)

=========================
ID  Skill Name
=========================
1   php
2   html
3   css
4   mysql
-------------------------
Run Code Online (Sandbox Code Playgroud)

这是我期望得到的:

[name]    => 'Ed'
[skill1]  => 'php'
[skill2]  => 'mysql'
[skill3]  => 'css'
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我正在使用laravel:

DB::table('table1')
   ->join('table2', function($join)
    {
         $join->on('table1.skill1', '=', 'table2.id');
    })
    ->join('table2', function($join)
    {
         $join->on('table1.skill2', '=', 'table2.id');
    })
    ->join('table2', function($join)
    {
         $join->on('table1.skill3', '=', 'table2.id');
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)

小智 14

试试这个查询:

SELECT U.Name AS Name, S1.Skill Name AS Skill1, S2.Skill Name AS Skill2, S3.Skill Name AS Skill3
    FROM table1 U
    JOIN table2 S1 ON (S1.Id = U.skill1)
    JOIN table2 S2 ON (S2.Id = U.skill2)
    JOIN table2 S3 ON (S3.Id = U.skill3)
Run Code Online (Sandbox Code Playgroud)