【问题标题】:Select all data from table while replacing columns with values from another table?选择表中的所有数据,同时用另一个表中的值替换列?
【发布时间】:2013-03-20 16:00:05
【问题描述】:

目前我有两个表,约会和用户:

约会ID |时间 |教师编号 |学生卡
1 | 11 | 2 | 1
2 | 12 | 2 | 1

用户 ID |姓名
1 |学生
2 |老师

期望的结果:

约会ID |时间 |老师姓名 |学生姓名
1 | 11 |老师 |学生
2 | 12 |老师 |学生

基本上,我想从约会表中执行 SELECT *,但不是让查询给我 id,而是希望用名称替换它们。我尝试创建一个临时表和一个 JOIN,但无法弄清楚。任何帮助都会很棒,谢谢!

【问题讨论】:

  • 。 .你试过什么?这是一个非常基本的 SQL 查询,所以如果您有任何编写查询的经验,应该不难弄清楚。

标签: php mysql


【解决方案1】:

这个怎么样?

SELECT
    appointment_id,
    time,
    u.name AS teachername,
    v.name AS studentname
FROM
    appointments AS a
LEFT JOIN
    users AS u ON
    a.teacher_id = u.user_id
LEFT JOIN
    users AS v ON
    a.student_id = v.user_id

您可以签入此SQL Fiddle

【讨论】:

  • 我想你想要u.name AS teachername, v.name AS studentname
【解决方案2】:

试试这个

   select a.appointment_id , a.time ,b.name as teachername ,
          c.name as studentname
   from appointments a 
   inner join users b
   on a.teacher_id = b.user_id
   inner join users c
   on a.student_id = c.user_id

DEMO HERE

输出:

   APPOINTMENT_ID   TIME    TEACHERNAME     STUDENTNAME
          1          11     teacher         student
          2          12     teacher         student

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2017-11-13
    • 2014-12-16
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多