MySql-如何通过另一个表中的另一个列过滤列名

问题描述

我有一个带有“ nick_name”列的“用户”表。
我还有另一个表'nick_name_master',其中有列:-ID,标题,图标。
理想情况下,与'user'和'nick_name_master'没有直接关系。因此,我无法使用联接获取nick_name_master.icon。

nick_name_master.title的值如下:-猫,狗,兔子等。
通过采用nick_name_master.title之一并附加一些随机数字(1-999)来设置user.nickname。

user.nick_name看起来像这样:-Rabbit514,Toucan12,Cat210等。

我想使用user.nick_name来获取nick_name_master.icon
当前代码正在使用这样的

foreach($posts as $post){
    $nick_name = $post->user->nick_name;
    $letters = preg_replace('/[^a-zA-Z]/','',$nick_name);
    $nickname = resolve('nick-name')->getByTitle($letters);    
}

getByTitle()是这个

public function getByTitle($title)
{
    return $this->nickname->select('icon')->where('title',$title)->first();
}  

由于我的$ post变量具有另一个数据,并且我要按10条记录对它进行分页,因此我面临n + 1个问题。 因此,我想在计算$ post时添加查询

$listing = $this->question
->leftjoin('users as u',function ($join) {
            $join->on('questions.user_id','u.id')
                ->where('u.deleted_at',NULL);
        })
->select('questions.id','user_id','questions.title','u.full_name')
->groupBy('questions.id')
->where('questions.is_active','Y')
->where('questions.is_reported','N'); 
return $listing;

这是从$ post查询提取查询的一部分。

是否有可能加入用户表和nick_name_master表?
或者只是使用select DB Raw选择nick_name_master.icon也可以。

我已经在select中尝试了这段代码(我知道这是错误的,我对DB原始查询没有太多经验)

DB::raw("select * from nick_name_master as nm where nm.title LIKE +'%'+u.nick_name+'%'")   

任何帮助将不胜感激。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...