mysql 双表多个外建怎么查询

mysql 双表多个外建怎么查询,让id显示出对应的名字,效果显示图4那样子

img

img

img

img

img

select t.title,t.BeginTime,e1.Name,e2.Name,t.priority from t_task t inner join t_employee e1 on t.TaskSenderId= e1.id inner join t_employee e2 on t.TaskReceiverID=e2.id

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7476089
  • 你也可以参考下这篇文章:mysql 存储过程同时添加数据到两张表 把第一张表新插入的记录的id作为一个字段,插入第二张表
  • 同时,你还可以查看手册:MySQL 字符集、对齐方式、统一编码 选择一个整理ID 中的内容
  • 除此之外, 这篇博客: Mysql设置主键自增,删除数据后,主键id依然从删除位置增加中的 4.再次添加数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    这里我们继续添加数据,便会发现数据,并不会按照5007继续排序
    Jack的stuno是5010,并不是从5007开始排序
    代码如下:

     insert into studentinfo(stusex,stuname) values(0,"Jack");
    

    会发现Jack的stuno是没有经过排序的

  • 您还可以看一下 崔海朋老师的MySQL启动时遇到的那些坑课程中的 生产中的MySQL启动及MySQL启动顺序小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    针对问题,可以采用以下查询语句进行优化:

    SELECT t1.id, t1.title, t2.name AS 'author', t3.name AS 'category' FROM books t1 LEFT JOIN authors t2 ON t1.author_id = t2.id LEFT JOIN categories t3 ON t1.category_id = t3.id;

    其中,books为主表,authors和categories为从表,通过LEFT JOIN进行关联查询。用t1, t2, t3代表不同的表,id,title,author_id,category_id为对应字段。

    如果需要显示对应的名字,可以将名字字段加入查询,并在SELECT语句中起别名,如t2.name AS 'author',t3.name AS 'category'。

    如果是外键关联查询,需要确保每个表要设置一个主键ID,否则可以使用GROUP_CONCAT()函数进行查重,语法如下:

    SELECT address, GROUP_CONCAT(DISTINCT username) AS '姓名' FROM USER GROUP BY username;

    至于表结构优化方面,可以从以下几个方面考虑:

    1. 为每张表设置一个唯一主键ID
    2. 使用合适的存储引擎
    3. 使用合适的数据类型和字段属性长度
    4. 给频繁使用和查询的字段建立合适的索引
    5. 尽量少用text类型,使用enum、char等
    6. 尽量使用not null字段属性,并给空字段设置默认值

    以上建议只是提供了一些优化方向,具体实现可以根据具体情况进行调整。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^