【问题标题】:Joining table into 4 columns将表连接成 4 列
【发布时间】:2017-06-05 03:53:38
【问题描述】:

我在显示不同表格中的 4 个不同列时遇到了问题,有关更多详细信息,请参阅以下内容:

个人表(tbl_personal)

+---+-----+------------+
|ID |Name |Skill       |
+---+-----+------------+
| 1 | Nia | Accountant |
| 2 | Tia | Banking    |
| 3 | Ria | Technicall |
| 4 | Dia | Admin      |
+---+-----+------------+

表主(tbl_master)

+---+---------+---------+
|ID |Employee1|Employee2|
+---+---------+---------+
| 1 | 1       | 2       |
| 2 | 2       | 1       |
| 3 | 3       | 4       |
+---+---------+---------+

我想在 codeigniter 中从上面的 tbl_master 显示到网页中,如下所示:

+---+-------+-----------+-------+-----------+
|ID |Name 1 |Skill 1    |Name 2 |Skill 2    |
+---+-------+-----------+-------+-----------+
| 1 | Nia   | Accountant| Tia   | Banking   |
| 2 | Tia   | Banking   | Nia   | Accountant|
| 3 | Ria   | Technicall| Dia   | Admin     |
+---+---------+---------+-------+-----------+

如果有任何建议让我从 tbl_personal 加入 tbl_master,请提出建议,

感谢您的支持...

【问题讨论】:

  • 你尝试过什么吗?如果是,请告诉我们
  • 你想要的是所谓的数据透视表或转置行到列搜索在这里,你会找到它。有很多例子。
  • 我试过这个 $d['data_get'] = $this->db->query("select * from tbl_master right join tbl_personal on tbl_master.id_master=tbl_personal.id_master1 LIMIT ".$offset. ",".$limit."");但我只显示名称 1 和技能 1 有问题,之后我尝试添加 id_master2,我发现一个错误.. - @knowledge....
  • @karisma 您可以通过单击标签下方的编辑按钮使用代码重新编辑您的问题
  • @karisma 你试过我的问题吗?

标签: mysql codeigniter join


【解决方案1】:

您需要加入两次个人餐桌。如下所示

select tp1.name name1,tp1.skill skill1,tp2.name name2,tp2.skill skill2 
from tbl_master tm
join tbl_personal tp1
on tm.Employee1 =tp1.ID
join tbl_personal tp2
on tm.Employee2 =tp2.ID

【讨论】:

  • 如果他们有超过 4 个技能怎么办
  • 两列都有员工,我只需要将它与员工表一起加入即可
  • 对不起,我试过了,但仍然有这样的错误“您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册以获取正确的语法在第 4 行的“on tm.Employee1 =tp1.ID join tbl_personal on tp2 on tm.Employee2 =tp2.ID”附近使用 select tp1.name name1,tp1.skill Skill1,tp2.name name2,tp2.skill Skill2 from tbl_master tm在 tm.Employee1 上的 tp1 上加入 tbl_personal =tp1.ID 在 tm.Employee2 上的 tp2 上加入 tbl_personal =tp2.ID 文件名:C:\xampp\htdocs\kpu\system\database\DB_driver.php"
  • @karisma 现在检查我有一个错误
  • @knowledge....它工作的,谢谢!但我有另一个问题,我不能从 tbl_master 显示另一个字段列,你能再帮我一次吗?谢谢之前
【解决方案2】:

我认为您必须为此使用 2 个连接。加入后选择列也要小心

SELECT tp1.name as Name1, tp1.Skill as Skill1,tp2.name as Name2, tp2.Skill as Skill2
FROM tbl_master tm1
JOIN tbl_personal tp1 on tp1.id = tm1.Employee1
JOIN tbl_personal tp2 on tp2.id = tm1.Employee2

这应该是这个查询的输出。

只需在选择查询中添加ID 列。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多