我有两张桌子:
ID 姓名
1 .......... name1
2 .......... name2
3 .......... name3
另一个链接tbluser和tblrole
的表表2:tbllinkuserrole
userid .......... roleid
1 ............ 2
1 .......... 2
1 .......... 2
2 .......... 2
3 .......... 1
我想将tbluser.Name和用户角色从tbllinkuserrole提取到表中:单个表行(用户记录)可以根据从tbllinkuser角色获取的角色在“角色”列中包含多个行。用户可以拥有多个角色。 你可以帮帮我......
答案 0 :(得分:0)
尝试这一个
SELECT tbllinkuserrole.userid, tbllinkuserrole.roleid, tbluser.name
FROM tbllinkuserrole, tbluser
WHERE tbllinkuserrole.userid = tbluser.id
答案 1 :(得分:0)
将行值设为列的mysql
SELECT U.id, U.Name, MAX(CASE WHEN R.roleid = 1 THEN R.roleid END) role_1, MAX(CASE WHEN R.roleid = 2 THEN R.roleid END) role_2 from table_c AS U LEFT JOIN table_b AS R on (U.id = R.userid) WHERE 1 GROUP BY U.id
答案 2 :(得分:0)
Laravel有模型(Eloquent),在模型类中有一些易于用户从表中获取数据的函数。 (这适用于Laravel 5.2)
Laravel附带的Eloquent ORM提供了一个漂亮,简单的ActiveRecord实现,用于处理数据库。每个数据库表都有一个相应的"模型"用于与该表交互。模型允许您查询表中的数据,以及在表中插入新记录。 https://laravel.com/docs/5.2/eloquent
首先,您需要一个用户模型(php artisan make:model User
)。您需要将用户模式链接到正确的表格。
//File: /laravel/app/User.php
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $table = 'tbluser';
public function userRoles() {
//Get the table data with the user roles
$this->hasMany('App\UserRoles', 'user_id', 'id');
//First argument gets the UserRoles Modal
//Second argument get the UserRoles column 'user_id'
//Third argument get the User table - column id
}
//File: /laravel/app/UserRoles.php
use Illuminate\Database\Eloquent\Model;
class UserRoles extends Model
{
protected $table = 'tbllinkuserrole';
public function rank() {
//Get the table data with role
$this->hasOne('App\Roles', 'id', 'role_id');
//First argument gets the Roles Modal (table)
//Second argument get the Roles column 'id'
//Third argument get the UserRoles modal (table) - column role_id
}
//File: /laravel/app/Roles.php
use Illuminate\Database\Eloquent\Model;
class Roles extends Model
{
protected $table = 'tblroles';
}
现在,如果您致电Auth::user()->userRoles
,您将获得一个数组,其中包含表格中与当前用户相关联的所有行。
当您运行此操作时,您将转储所有用户排名数据。
foreach(Auth::user()->userRoles as $userrole) {
{{ dump($userrole) }}
{{ dump($userrole->rank) }}
}
我希望这适合你!
上找到更多信息