Php 使用JOIN从不同的表中检索多个数据值

Php 使用JOIN从不同的表中检索多个数据值,php,mysql,sql-query-store,Php,Mysql,Sql Query Store,我有三张桌子。 1.bni_类 2.bni_章 3.英国国立大学成员 CREATE TABLE `bni_category` ( `bni_category_id` int(11) NOT NULL, `bni_category_name` text, `is_active` int(1) NOT NULL DEFAULT '1', `is_delete` int(1) NOT NULL DEFAULT '0', `last_update` datetime DEFAULT NULL,

我有三张桌子。 1.bni_类 2.bni_章 3.英国国立大学成员

CREATE TABLE `bni_category` (
 `bni_category_id` int(11) NOT NULL,
 `bni_category_name` text,
 `is_active` int(1) NOT NULL DEFAULT '1',
 `is_delete` int(1) NOT NULL DEFAULT '0',
 `last_update` datetime DEFAULT NULL,
 `bni_chapter_id` int(20) NOT NULL,
 create_date` varchar(50) NOT NULL,
    PRIMARY KEY (`bni_category_id`),
 KEY `bni_chapter_id` (`bni_chapter_id`),
 CONSTRAINT `bni_category_ibfk_1` FOREIGN KEY (`bni_chapter_id`) 
REFERENCES `bni_chapter` (`bni_chapter_id`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1
BNI_章

CREATE TABLE `bni_chapter` (
 `bni_chapter_id` int(11) NOT NULL,
 `bni_chapter_name` varchar(50) DEFAULT NULL,
 `create_date` varchar(50) NOT NULL,
  `is_active` int(1) NOT NULL DEFAULT '1',
`is_delete` int(1) NOT NULL DEFAULT '0',
 `last_update` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`bni_chapter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
英国国立大学成员

 CREATE TABLE `bni_member` (
`bni_member_id` int(11) NOT NULL AUTO_INCREMENT,
 `bni_member_name` text,
 `bni_member_mobile` varchar(13) DEFAULT NULL,
 `bni_member_email` text,
 `bni_member_website` text,
 `bni_member_bio` text,
 `bni_member_export_to` text,
 `bni_member_import_from` text,
 `bni_member_want_to_connect_to` text,
 `bni_member_company` text,
 `bni_chapter_id` int(11) DEFAULT NULL,
 `bni_category_id` int(11) DEFAULT NULL,
 `bni_member_address` text,
 `bni_member_commitee` text,
 `bni_member_profilepic` longblob NOT NULL,
 `bni_member_logo` longblob NOT NULL,
 `create_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
 `is_active` int(1) NOT NULL DEFAULT '1',
 `is_delete` int(1) NOT NULL DEFAULT '0',
 `last_update` text,
 `del_status` varchar(50) NOT NULL,
 PRIMARY KEY (`bni_member_id`),
 KEY `bni_chapter_id` (`bni_chapter_id`),
 KEY `bni_category_id` (`bni_category_id`),
  KEY `bni_member_id` (`bni_member_id`),
 CONSTRAINT `bni_member_ibfk_1` FOREIGN KEY (`bni_chapter_id`) REFERENCES 
`bni_chapter` (`bni_chapter_id`),
 CONSTRAINT `bni_member_ibfk_2` FOREIGN KEY (`bni_category_id`) 
REFERENCES `bni_category` (`bni_category_id`)
) ENGINE=InnoDB AUTO_INCREMENT=223 DEFAULT CHARSET=latin1
现在我想展示一下 bni_成员_姓名 bni_成员id bni_章_id bni_章_名称 bni_类别_id bni_类别名称来自bni_成员和章节id,章节名称来自章节表和类别id,类别名称来自类别表

最后一个表应该是

Member Id | Member Name | Chapter Id | Chapter Name | Category Id 
|category Name

请尝试以下查询

SELECT A.bni_member_id, A.bni_member_name, A.bni_chapter_id, B.bni_chapter_name,  A.bni_category_id, C.bni_category_name FROM `bni_member` AS a LEFT JOIN `bni_chapter` as B on A.bni_chapter_id = B.bni_chapter_id left join `bni_category` AS C on A.bni_category_id = C.bni_category_id

请尝试以下查询

SELECT A.bni_member_id, A.bni_member_name, A.bni_chapter_id, B.bni_chapter_name,  A.bni_category_id, C.bni_category_name FROM `bni_member` AS a LEFT JOIN `bni_chapter` as B on A.bni_chapter_id = B.bni_chapter_id left join `bni_category` AS C on A.bni_category_id = C.bni_category_id

您是否尝试过使用联接的查询?是的,我使用了交叉联接@用户1309690您可以显示您的查询以及您使用该查询获得的输出吗。
“从bni_成员交叉加入bni_章节交叉加入bni_类别中选择*,其中bni_成员id=””。“$发布[“员工id”]。”但它一次又一次地提供相同的数据@用户1309690但我认为它不起作用。它提供了错误的数据。你能帮我一下吗..@user1309690你试过使用连接的查询吗?是的,我使用了交叉连接@用户1309690您可以显示您的查询以及您使用该查询获得的输出吗。
“从bni_成员交叉加入bni_章节交叉加入bni_类别中选择*,其中bni_成员id=””。“$发布[“员工id”]。”但它一次又一次地提供相同的数据@用户1309690但我认为它不起作用。它提供了错误的数据。你能帮我一下吗?@user1309690