gpt4 book ai didi

mysql - SQL Genius需要..复杂的MySQL查询

转载 作者:行者123 更新时间:2023-11-30 00:04:51 25 4
gpt4 key购买 nike

我正在尝试通过在 MySQL 服务器上做尽可能多的工作来优化我的 php。我有一个 SQL 查询,它从 Leads 表中提取数据,但同时连接两个标签表以组合结果。我希望添加一家通过关系表链接的公司。

因此,保存两者之间关系的表是relations_value,它只是简单地说明(我添加了示例数据)

parenttable (companies) | parentrecordid (10) | childtable (leads) | childrecordid (1)

公司表有很多列,但唯一相关的列是;

id (10) | companyname (my company name)

因此,此查询当前获取了我需要的所有内容,但我想将公司名称带入查询中:

SELECT leads.id, 
GROUP_CONCAT(c.tag ORDER BY c.tag) AS tags,
leads.status,
leads.probability
FROM `gs_db_1002`.leads
LEFT JOIN ( SELECT *
FROM tags_module
WHERE tagid IN ( SELECT id
FROM tags
WHERE moduleid = 'leads' ) ) as b
ON leads.id = b.recordid
LEFT JOIN `gs_db_1002`.tags as c
ON b.tagid = c.id
GROUP BY leads.id,
leads.status,
leads.probability

我需要能够进入relations_values表并通过选择childtable=leads和childrecordid=1来拉出parenttable和parentrecordid,并以某种方式加入这些,以便我能够将公司名称作为上述查询中的一列...

这可能吗?

我创建了一个 sqlfiddle:sqlfiddle.com/#!2/023fa/2 所以我希望将company.companyname 作为列添加到查询中。

最佳答案

我不知道将每个表链接在一起的主键和外键是什么..如果您可以更好地理解彼此链接的ID,这将使这变得容易得多...但是我做到了确实返回正确结果的东西...但由于所有 ID 都 = 1 那么它可能是不正确的。

SELECT 
leads.id, GROUP_CONCAT(c.tag ORDER BY c.tag) AS tags,
leads.status, leads.probability, companyname
FROM leads
LEFT JOIN (
SELECT * FROM tags_module WHERE tagid IN (
SELECT id FROM tags WHERE moduleid = 'leads' )
) as b ON leads.id = b.recordid
LEFT JOIN tags as c ON b.tagid = c.id
LEFT JOIN relations_values rv on rv.id = b.recordid
LEFT JOIN companies c1 on c1.createdby = rv.parentrecordid
GROUP BY leads.id,leads.status, leads.probability

关于mysql - SQL Genius需要..复杂的MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com