需要帮助连接 mysql 数据库中的两个表以进行摄影项目

问题描述 投票:0回答:2

我正在从事一个摄影项目,在连接表和从 mysql 数据库检索数据方面遇到一些问题。 我为这个项目创建了两个表。一张名为 cm_team 的表用于团队成员,另一张名为 cm_events 的表用于摄影活动。假设要拍摄一个活动,我们需要 6 个人,该人的 id 存储在 cm_events 表中。
enter image description here enter image description here

正如您从上面的图片中看到的..我将 cm_team 成员的 id 存储在 cm_events 表中..我希望在 cm_events 表中相应突出显示的字段中获取团队成员的姓名..任何帮助都非常重要赞赏。

例如,我想要的输出应该是:而不是 team_lead 标题下的 5,我应该得到与 5 相对应的名称,即 Arjun

php mysql join
2个回答
0
投票

有这样的事吗? (比子查询更干净、更快)

 SELECT 
        `event`.client_name,
        `event`.client_number,
        # some more event cols ..
        `team_lead`.`cm_name` AS `team_lead`,
        `candid_photo`.`cm_name` AS `candid_photo`,
        `candid_video`.`cm_name` AS `candid_video`,
        `traditional_photo`.`cm_name` AS `traditional_photo`,
        `traditional_video`.`cm_name` AS `traditional_video`,
        `helper`.`cm_name` AS `helper`
    FROM cm_events `event`
        JOIN cm_team `team_lead` ON `team_lead`.`cm_code` = `event`.`team_lead`
        JOIN cm_team `candid_photo` ON `candid_photo`.`cm_code` = `event`.`candid_photo`
        JOIN cm_team `candid_video` ON `candid_video`.`cm_code` = `event`.`candid_video`
        JOIN cm_team `traditional_photo` ON `traditional_photo`.`cm_code` = `event`.`traditional_photo`
        JOIN cm_team `traditional_video` ON `traditional_video`.`cm_code` = `event`.`traditional_video`
        JOIN cm_team `helper` ON `helper`.`cm_code` = `event`.`helper`
                            

0
投票

使用子查询

DROP TABLE IF EXISTS T,t1;
CREATE TABLE T (
id int, name varchar(10));
insert into t values
(1     ,   'aaa'),
(2   ,     'bbb');

create table t1 (
id int, team_lead int,team_a int);
insert into t1 values
(1,1,2),
(2,2,2);

select t1.id, (select t.name from t where t.id = t1.team_lead) team_lead,
(select t.name from t where t.id = t1.team_a) team_a
from t1;

+------+-----------+--------+
| id   | team_lead | team_a |
+------+-----------+--------+
|    1 | aaa       | bbb    |
|    2 | bbb       | bbb    |
+------+-----------+--------+
2 rows in set (0.001 sec)
© www.soinside.com 2019 - 2024. All rights reserved.