我有以下三张桌子:

呼叫列表(表格)

id line rel_type rel_id
1 3 user 2
2 10 lead 1

用户(表)

id name phone
1 mehran 99999
2 reza 222222

潜在客户(表)

id title status
1 lead_1 confirmed
2 lead_2 pending

我想在calls_list表上说, Select 时,如果rel_type列等于lead值,则加入lead表

我的问题是:

从通话列表中 Select *作为通话

但不起作用

这可能吗?你能帮助我吗

推荐答案

您需要将每个联接仅限于正确类型的联接:

SELECT * 
FROM calls_list AS c 
LEFT OUTER JOIN users AS u 
  ON u.id = c.rel_id AND c.rel_type = 'user'
LEFT OUTER JOIN lead AS l 
  ON l.id = c.rel_id AND c.rel_type = 'lead'

Mysql相关问答推荐

AWS RDS上的MySQL复制错误:超级权限或REPLICATION_SLAVE_ADMIN权限的访问被拒绝

mysql使用LIKE查找二进制字段有问题

更新MySQL表中子记录的序号

MySQL将JSON值从对象类型更改为数组

MySQL有没有办法直接从CSV文件中读取而不是导入它?

仅获取我不是最后一个 comments 者的博客帖子

计算男生的人数和女生的人数.学生是有入学记录的人

Group_CONCAT CASE 乘法输出

从连接表中try 按唯一ID计算行数 MySQL

如何编写按天数汇总值的sql查询?

一次更新mysql中的多个列

在分组结果 MySQL 5.7 版中获取最多的重复值

MySQL如何通过外键ID Select 多行?

如何显示患者预约中的专业人员姓名?

插入重复键查询以在每一行上进行自定义更新

主键应该始终是无符号的?

使用 MySQL 流式传输大型结果集

MySQL 如何处理并发插入?

如何删除没有临时表的 MySQL 表中的所有重复记录

如何将本地托管的 MySQL 数据库与 docker 容器连接