gpt4 book ai didi

mysql - 我需要一个 MySQL 子查询吗?我怎样才能得到这些结果?

转载 作者:行者123 更新时间:2023-11-28 23:12:11 25 4
gpt4 key购买 nike

首先是表格名称和布局:

table names & layouts

这是我想要的结果:

Desired Results

我猜这是“搞定了”(技巧)..

我只会传递一个(动态的)imis_id/user_id(当前在一张表上不匹配的列名)...

因此需要在关系表上查找(选择)传入的(动态)id.. 以及 current_org = 1 的位置。

这将获取/提供目标 org_id,我需要在其中获取所有用户信息(与 org_id 相关联)......以及所有组织详细信息。

这是一个弱/失败的尝试:(它使用硬编码的 org_id)无效..我只需要传入 user_id/imis_id.. 并且 current_org = 1 以获得目标 org_id。

SELECT genealogy_orgs.org_id, genealogy_orgs.org_name, 
genealogy_relations.user_id, genealogy_relations.relation_type, genealogy_relations.start_year, genealogy_relations.end_year,
genealogy_users.imis_id, genealogy_users.full_name
FROM genealogy_orgs
INNER JOIN genealogy_relations ON genealogy_orgs.org_id = genealogy_relations.org_id
INNER JOIN genealogy_users ON genealogy_relations.user_id = genealogy_users.imis_id
WHERE genealogy_orgs.org_id = '84864';

这是另一个失败的尝试(只返回 1 行)..但使用了正确的标准:

SELECT 
genealogy_relations.org_id,
genealogy_relations.user_id, genealogy_relations.relation_type, genealogy_relations.start_year, genealogy_relations.end_year,
genealogy_users.imis_id, genealogy_users.full_name,
genealogy_orgs.org_name
FROM genealogy_relations
INNER JOIN genealogy_orgs ON genealogy_relations.org_id = genealogy_orgs.org_id
INNER JOIN genealogy_users ON genealogy_relations.user_id = genealogy_users.imis_id
WHERE genealogy_relations.user_id = '00003' AND genealogy_relations.current_org = '1';

此时,我什至不确定我需要搜索什么?这是“子查询/子选择”发挥作用的地方吗?

我的 MySQL-fu 仅限于非常直接/简单的查询类型。这比我习惯的更先进。

最佳答案

您需要在 org_id 上加入 genealogy_relations 表:

SELECT o.*, u.*
FROM genealogy_relations r1
JOIN genealogy_relations r2 ON r2.org_id = r1.org_id
JOIN genealogy_orgs o ON o.org_id = r2.org_id
JOIN genealogy_users u ON u.imis_id = r2.user_id
WHERE r1.user_id = '00003'
AND r1.current_org = '1'

关于mysql - 我需要一个 MySQL 子查询吗?我怎样才能得到这些结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45492820/

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