[英]MySQL Join two different columns in the same table twice in CodeIgniter
[英]MySQL - Join two tables, different columns in table 1 on the same column in table 2
我试图加入不同的列( part_type_n
上(其中n的范围从1至54)) Table1
用相同的柱( id
上,伯,AUTOINC) Table2
。
架构:
Table1 ============== part_type_1 . . . part_type_54 Table2 ============= id
我尝试了明显的查询(php生成,从n到1到54循环),省略了...中的重复内容:
SELECT * FROM Table1 JOIN Table2 on (Table1.part_type_1=Table2.id), ..., (Table1.part_type_54=Table2.id)
我收到此错误:
如何加入这两个表?
您将不得不多次自行连接表。
SELECT * FROM table1 t1
INNER JOIN table2 t2 on t2.Id=t1.part_type_1
INNER JOIN table2 t3 on t3.id = t1.part_type_54;
希望这可以帮助!
作为编写具有54个表别名的查询的替代方法,您可以考虑一次连接到表-如下所示:
select ...
from Table1 t1
join Table2 t2
on t2.id in (t1.part_type_1, t1.part_type_2, ... t1.part_type_54)
它为我工作,以获取所需的结果,因为其中一行与存储在一个表列中的各种类别匹配。
询问
SELECT cm3.*, xp.post_title,GROUP_CONCAT(DISTINCT sc.name) AS cate_list
FROM `xld_posts` xp
JOIN course_map cm0 ON cm0.course_id = xp.ID
JOIN course_map cm1 ON cm1.course_id = cm0.course_id AND cm0.id = 3
JOIN course_map cm2 ON cm2.course_id = cm1.course_id AND cm1.id = 6
JOIN course_map cm3 ON cm3.course_id = cm2.course_id AND cm2.id = 11
JOIN subject_category sc ON cm3.id = sc.id
GROUP by post_title ORDER BY post_title
注意:类别值3、6和7是从表单和位获得的。 因此,如果您的表单具有三个或更少的查询,则应动态创建查询并将每个表与上一个表连接。
:)如果有人觉得有用,那就很高兴。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.