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

标签 mysql

首先是表格名称和布局:

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/

相关文章:

Mysql 基于权重的选择

mysql - 数据库规范化问题

Android 应用程序数据库数据不会显示(从本地主机检索 JSON 数据)

php - php日期格式转换错误

php - laravel 5.5 缺少 [Route : 所需的参数

php - 使用 PHP 和 MySQL 的 Android 应用程序 - Dreamweaver 显示 root 错误

mysql - 错误代码 : 1215 in mysql cannot add foreign key constraint

mysql - 比较不同表mysql中的2列

sql - MySQL:如何获取不同类型的 n 个最新行

java - Hibernate 5 : org. hibernate.MappingException: 未知实体