我有一个表,它的id是m_id和child_id,两者的相互关系如下:
| 中间标识|子项标识|操作状态|
| - ------|- ------|- ------|
| 1个|零|完成|
| 第二章|零|完成|
| 三个|零|完成|
| 四个|1个|进行中的|
在此示例中,m_id =〉1具有两个op_status,即“finish”和“on-going”。另一个表也与此表的m_id连接,如下所示:
| c_id|中间标识|制造|模型|地位|
| - ------|- ------|- ------|- ------|- ------|
| 一百|1个|宏碁|阿斯 perl |1个|
| 一百零一|1个|宏碁|阿斯 perl |1个|
然后,我需要使用这些02表获得以下输出:
| 中间标识|子项标识|制造|模型|操作状态|
| - ------|- ------|- ------|- ------|- ------|
| 1个|零|宏碁|阿斯 perl |完成|
| 第二章|零|宏碁|阿斯 perl |完成|
| 三个|零|宏碁|阿斯 perl |完成|
| 四个|1个|宏碁|阿斯 perl |进行中的|
我使用下面的查询来实现这一点。
SELECT T1.m_id, T1.child_id, T2.make, T2.model, T1.op_status
FROM parent T1, child T2
WHERE T1.m_id = T2.m_id
但没有得到上面期望的输出,返回结果集如下:
| 中间标识|子项标识|制造|模型|操作状态|
| - ------|- ------|- ------|- ------|- ------|
| 1个|零|宏碁|阿斯 perl |完成|
我自己可能会错过什么?在这方面能帮助任何人吗?
按照Chiara Tumminelli的建议输出。
| 中间标识|子项标识|制造|模型|操作状态|
| - ------|- ------|- ------|- ------|- ------|
| 1个|零|宏碁|阿斯 perl |完成|
| 第二章|零|零|零|完成|
| 三个|零|零|零|完成|
| 四个|1个|零|零|进行中的|
1条答案
按热度按时间63lcw9qa1#
假设当child_id值都为空(在另一个非空值之前)时,连续的m_id值与同一示例关联,则可以使用两个要匹配的联接执行此任务:
输出:
| 中间标识|子项标识|操作状态|制造|模型|
| - ------|- ------|- ------|- ------|- ------|
| 1个|零|完成|宏碁|阿斯 perl |
| 第二章|零|完成|宏碁|阿斯 perl |
| 三个|零|完成|宏碁|阿斯 perl |
| 四个|1个|进行中的|宏碁|阿斯 perl |
检查here演示。
如果您有更复杂的间隙和孤岛问题,您可能需要通过以下方式重新生成分区(m_id唯一值):
查看here演示。