添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

例如:当A表 type为1 时,userid对应的是 B表的数据,当type 为2 时,userid 对应的是C表的数据。

$list = DB::table('A表 as m')
        ->leftJoin('B表 AS u', function ($query) use ($wechat_id) {
            $query->on('u.wechat_user_id', '=', 'm.userid')
                ->where('u.id', ">", 0)
                ->where('m.type', "=", 1)
                ->where('u.company_wechat_id', "=", $wechat_id);
        ->leftJoin('C表 AS c', function ($query) use ($wechat_id) {
            $query->on('c.external_userid', '=', 'm.userid')
                ->where('c.id', ">", 0)
                ->where('m.type', "=", 2)
                ->where('c.company_wechat_id', "=", $wechat_id);
        ->where('m.group_id', $params['group_id'])
        ->where('m.is_delete', 0)
        ->select(['m.id', 'm.userid', "m.type", 'm.join_time', "m.join_scene", 'm.userid', 'c.wechat_name',
            'u.name', 'm.role', 'c.avatar as c_avatar', 'u.avatar as avatar'])
        ->orderBy('m.role', 'desc')
        ->get()
        ->toArray();
                    例如:当A表 type为1 时,userid对应的是 B表的数据,当type 为2 时,userid 对应的是C表的数据。$list = DB::table('A表 as m')        ->leftJoin('B表 AS u', function ($query) use ($wechat_id) {            $query->on('u.wechat_user_id', '=', 'm.userid')                ->where('u.id
首先,说下问题的出处;日常开发中;由于业务的特许需求所有就有了特殊的设计;
比如 : 一张 [commun] 里有 一个 (int)type 字段 ,有四个不同的值。还有一个 和 其他关联字段 cid
0 :代 A 类  名 [A]
1 :代 B  名 [B]
2 :代 C  名 [C]
3 :代 D  名 [D]
我们要根据[commun] 里 的字段 type不同而去去分别关联查询相应的里的...
实现的语句如下
SELECT a.id, a.type, a.touid, b.question as b_question, c.content as c_content FROM ls_message a
LEFT JOIN ls_question_for_one b
on a.content = b.id and...
				
今天遇到一个这样的需求: 1、查询一个(c)的数据里面有个type字段 2、type = 1,就关联a,查询a.xxxx,type = 2,就关联b,查询b.yyyy 2、查询出来的别名是 cccc a_name b_name SELECT c.type ,CASE
JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):获取两个字段匹配关系的记录。 LEFT JOIN(左连接):获取左所有记录,即使右没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右所有记录,即使左没有对应匹配的记录。 假设有两个,每个有一列,数据如下:
一、数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库。从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织、存储和管理数据的仓库。 简单来说,可以将数据库视为电子化的一个文件柜。用户可以对文件中的数据进行新增、更新和删除等操作。 一对多的关系是指: 主表的一行数据可以同时对应从的多行数据,反过来就是从的多行数据指向主表的同一行数据 分类和商品、班级和学生、用户和订单等等 建原则 将一的一方作为主表,多的一方作为从,在从中指定一个字段作为外键,指向主表的主键 多对多关系 两张都是多的一方,A的一行数据可以同时对应B的多行数据,反之B的一行数据也可以同时对应A的多行数据 订单和商品、学生和课程等等 建原则 因为两张都是多的一方,所以在两张
MySQL 中,可以使用 `GROUP_CONCAT` 函数将多行数据中的某个字段值连接成一个字符串,并用指定的分隔符分隔。这种方法可以实现将关联查询结果中某个字段的值用逗号隔开的功能。以下是一个示例 SQL 查询语句: SELECT t1.id, GROUP_CONCAT(t2.name SEPARATOR ',') AS names FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.t1_id GROUP BY t1.id; 在这个查询语句中,`table1` 和 `table2` 是两个关联,它们之间通过 `INNER JOIN` 进行连接。我们想要查询 `table1` 中的 `id` 字段和与其相关联的 `table2` 中的 `name` 字段,并将 `name` 字段值用逗号隔开。使用 `GROUP_CONCAT` 函数可以将 `name` 字段值连接成一个字符串,`SEPARATOR` 参数指定了连接时使用的分隔符。 最后,使用 `GROUP BY` 将查询结果按 `id` 分组,这样就可以获得每个 `id` 对应的 `name` 字段值的逗号分隔字符串。