SQL Join 类似列上的原始查询问题
Posted
技术标签:
【中文标题】SQL Join 类似列上的原始查询问题【英文标题】:SQL Join raw query issue on similar coloumn 【发布时间】:2016-09-18 16:05:34 【问题描述】:这是我的报告表
report
id user_id field_tech_id
1 1 4
2 3 6
而用户表是
user
id name user_type
1 raj 1
3 ram 1
4 anthony 2
6 kumar 2
在此列中 user_type 1 用于用户,2 用于 field_tech
如何加入并获取订单的用户名和字段技术名称
我试过了
$data = Report::select('user.name as user_name')
->leftjoin('users','users.id','=','report.user_id')
->get();
但是当我尝试时
$data = Report::select('user.name as user_name')
->leftjoin('users','users.id','=','report.user_id')
->leftjoin('users','users.id','=','report.field_tech_id')
->get();
如何获取用户名和字段技术名称?
【问题讨论】:
哪个表有字段技术名称列 【参考方案1】:试试这个:
$data = Report::select('user.name as user_name')
->leftjoin('users as users1','users.id','=','report.user_id')
->leftjoin('users as users2','users.id','=','report.field_tech_id')
->select('users1.*,users2.*)
->get();
【讨论】:
【参考方案2】:如果您可以传递整个 SQL 查询,那么这应该可以:
SELECT u.name as user_name, r.field_tech_id
FROM user u
LEFT JOIN report r
ON u.id = r.user_id
【讨论】:
以上是关于SQL Join 类似列上的原始查询问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 XPath/XQuery 过滤 XML 列上的 SQL 查询
SQL Server:查询应用在 where 子句中,包含 Json 对象的列上的 IS NOT Null 需要更多时间