将不同树中的两个表加入 phpmyadmin

Posted

技术标签:

【中文标题】将不同树中的两个表加入 phpmyadmin【英文标题】:Join two tables in different tree into phpmyadmin 【发布时间】:2021-03-07 11:09:15 【问题描述】:

我需要在两个表之间进行连接,其中一个表在一个分组内。但是查询给了我一个错误,我不知道该怎么做。enter image description here

我必须加入 users_field_data.uid 和 user__field_apellidos.entity_id,但它给了我错误。

我该怎么做?

enter image description here

enter image description here

谢谢!

编辑: 表 users_field_data:

如果不存在 `user__field_apellidos` 则创建表( `bundle` varchar(128) CHARACTER SET ascii NOT NULL DEFAULT '' COMMENT '本行所属的字段实例bundle,删除字段实例时使用', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '表示该数据项是否已被删除的布尔值', `entity_id` int(10) unsigned NOT NULL COMMENT '此数据附加到的实体 id', `revision_id` int(10) unsigned NOT NULL COMMENT '此数据附加到的实体修订 id,对于未版本化的实体类型,它与实体 id 相同', `langcode` varchar(32) CHARACTER SET ascii NOT NULL DEFAULT '' COMMENT '该数据项的语言代码。', `delta` int(10) unsigned NOT NULL COMMENT '此数据项的序列号,用于多值字段', `field_apellidos_value` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户字段field_apellidos的数据存储。'; ALTER TABLE `user__field_apellidos` 添加主键(`entity_id`,`deleted`,`delta`,`langcode`), ADD KEY `bundle` (`bundle`), 添加键`revision_id`(`revision_id`); 如果不存在“users_field_data”,则创建表( `uid` int(10) 无符号非空, `langcode` varchar(12) CHARACTER SET ascii NOT NULL, `preferred_langcode` varchar(12) CHARACTER SET ascii DEFAULT NULL, `preferred_admin_langcode` varchar(12) CHARACTER SET ascii DEFAULT NULL, `name` varchar(60) NOT NULL, `pass` varchar(255) 默认为空, `mail` varchar(254) 默认为空, `timezone` varchar(32) 默认为空, `status` tinyint(4) 默认为空, `created` int(11) NOT NULL, `改变` int(11) 默认为空, `access` int(11) NOT NULL, `login` int(11) 默认为空, `init` varchar(254) 默认为空, `default_langcode` tinyint(4) NOT NULL, `content_translation_source` varchar(12) 字符集 ascii 默认为 NULL, `content_translation_outdated` tinyint(4) 默认为 NULL, `content_translation_uid` int(10) unsigned DEFAULT NULL COMMENT '目标实体的 ID。', `content_translation_status` tinyint(4) 默认为 NULL, `content_translation_created` int(11) 默认 NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户实体的数据表。'; 更改表`users_field_data` 添加主键(`uid`,`langcode`), 添加唯一键`user__name`(`name`,`langcode`), ADD KEY `user__id__default_langcode__langcode` (`uid`,`default_langcode`,`langcode`), 添加 KEY `user_field__mail` (`mail`(191)), ADD KEY `user_field__created` (`created`), 添加 KEY `user_field__access` (`access`), 添加键`user_field__content_translation_uid__target_id`(`content_translation_uid`); 表 user__field_apellidos: 如果不存在 `user__field_apellidos` 则创建表( `bundle` varchar(128) CHARACTER SET ascii NOT NULL DEFAULT '' COMMENT '本行所属的字段实例bundle,删除字段实例时使用', `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '表示该数据项是否已被删除的布尔值', `entity_id` int(10) unsigned NOT NULL COMMENT '此数据附加到的实体 id', `revision_id` int(10) unsigned NOT NULL COMMENT '此数据附加到的实体修订 id,对于未版本化的实体类型,它与实体 id 相同', `langcode` varchar(32) CHARACTER SET ascii NOT NULL DEFAULT '' COMMENT '该数据项的语言代码。', `delta` int(10) unsigned NOT NULL COMMENT '此数据项的序列号,用于多值字段', `field_apellidos_value` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户字段field_apellidos的数据存储。'; ALTER TABLE `user__field_apellidos` 添加主键(`entity_id`,`deleted`,`delta`,`langcode`), ADD KEY `bundle` (`bundle`), 添加键`revision_id`(`revision_id`);

【问题讨论】:

【参考方案1】:

你错过了加入部分。试试下面的查询:

s`elect * from user__field_apellidos inner join users_field_data on entity_id = users_field_data.uid`

【讨论】:

它不起作用,我不明白为什么?它与层次结构中的表有关吗?什么是 user_field_afos? 错误查询 SQL: Documentación select * from user_field_apellidos inner join users_field_data on entity_id = users_field_data.uid LIMIT 0, 25 mysql ha dicho: Documentación #1146 - 表 'escofet2020.user_field_apellidos' 不存在跨度> 你的表叫什么名字? users_field_data 和 user__field_apellidos 进入层次结构 您使用的是哪个数据库和版本?

以上是关于将不同树中的两个表加入 phpmyadmin的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询加入,比较两个表并返回第一个表中的所有记录

连接/合并/加入两个 AVL 树

加入表两次 - 在同一个表的两个不同列上

为来自不同表的两个单独操作运行多个子查询(相关)并加入一个表[关闭]

加入相同的字段,不同的数据类型

显示嵌套树中的前两个位置