Php 如何在查询中添加不同的联接
我有一个作业表:Php 如何在查询中添加不同的联接,php,mysql,join,Php,Mysql,Join,我有一个作业表: ID Name TaskID A1 John A A2 Roy B A3 Clair A1 这是TaskID_1表(应选择所有列): 这是TaskID_2表(应选择所有列): 所以,我想加入不同的表格 如果查询是(SELECT*FROM assignment where id='A3'),那么任务id将是A1,因此我想加入任务ID2表 但是如果查询是(SELECT*FROM assignment wh
ID Name TaskID
A1 John A
A2 Roy B
A3 Clair A1
这是TaskID_1表(应选择所有列):
这是TaskID_2表(应选择所有列):
所以,我想加入不同的表格
如果查询是(SELECT*FROM assignment where id='A3'
),那么任务id将是A1,因此我想加入任务ID2表
但是如果查询是(SELECT*FROM assignment where id='A2'
),那么任务id将是B,所以我想加入任务ID1表
可能吗?
它是这样的(不是有效的SQL查询):
注意:
- 我正在使用代码点火器,因此脚本处于活动记录中
- 我没有更改表结构的特权
select a.*, coalesce(t1.deadline, t2.deadline) as deadline from assignment a
left join taskid_1 t1 on a.taskid=t1.taskid
left join taskid_2 t2 on a.taskid=t2.taskid
我只是好奇,但是有两个定义相同的TaskID表有什么意义呢?嗯,还有更多的不同之处,我并没有添加所有的列。时间太长了,在你的案子中使用工会对不起,再见editwoah,非常感谢。经过一些小小的调整,我得到了预期的结果。
TaskID Deadline place_of_arrival staffID day_of_shipment
A1 100
A2 200
SELECT * FROM assignment
IF(assignment.TaskID IN (SELECT TaskID FROM TaskID_1))
{ INNER JOIN TaskID_1 ON assignment.TaskID = TaskID_1.TaskID }
else
{ INNER JOIN TaskID_2 ON assignment.TaskID = TaskID_2.TaskID }
WHERE assignment.ID = 'some_variable'
select a.*, coalesce(t1.deadline, t2.deadline) as deadline from assignment a
left join taskid_1 t1 on a.taskid=t1.taskid
left join taskid_2 t2 on a.taskid=t2.taskid