我試圖通過使用Join從表2中獲取技巧名稱skill1
,skill2
,& skill3
。MYSQL加入同一表中的多列
當我試圖單獨獲得skill1
時它工作正常。但是,1066當我嘗試獲取下一列的詳細信息時,出現錯誤,並非唯一表格/別名。
表1(用戶表)
======================================
ID Name skill skill2 skill3
======================================
1 Ed 1 4 3
--------------------------------------
表2(技術細節)
=========================
ID Skill Name
=========================
1 php
2 html
3 css
4 mysql
-------------------------
這是我希望得到:
[name] => 'Ed'
[skill1] => 'php'
[skill2] => 'mysql'
[skill3] => 'css'
這裏是我的代碼,我使用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();
不是答案,但我會先重新組織我的表格,並介紹第三個將用戶ID鏈接到技能ID的方法。然後你不限於3(或你的用戶表中的技能字段數量)。 – jeroen
@ jeroen多對多的關係並不適合心靈的暈眩 –
想想你有3個連接,每個連接都可以通過skill.id將User.skil(n)加入到技能表中,提示:每個連接在user.skil (n)將有一個表別名。現在,您可以嘗試並顯示您所做的所有操作 –