获取父票证的用户ID-MySQL

时间:2019-02-08 16:56:26

标签: php mysql codeigniter

我有一个查询,可以查询按票证ID分组的所有最新票证数据。

clock_event

但是我需要获取父票证的用户ID,以便还可以显示票证所属的客户。

这是我需要的: enter image description here

但是目前,我获得的user_id都是SELECT t1.* FROM cq_tickets t1 JOIN ( SELECT ticket_id, MAX(date_updated) AS date_updated FROM cq_tickets GROUP BY ticket_id ) a ON t1.ticket_id = a.ticket_id AND t1.date_updated = a.date_updated WHERE current_editing_agent IS NULL AND status != 'closed' -这是最新票证数据的用户ID。

我知道我可以简单地通过运行循环并获取父票证为null的用户ID来实现,但是我只想使用一个查询,因为我使用服务器端DataTable中的数据。

我还考虑过做15,但是我需要从第一个UNION ALL中获取ticket_id。然后,在获得提交票证的客户的用户ID之后,我将获得他的姓名并将其添加到列表中。这可能吗?

编辑: 这是我的示例架构:http://sqlfiddle.com/#!9/8f084b/2

SELECT

我们非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我发誓之前我曾两次尝试过此查询,但是它没有用,所以我转向了这里。 然后我再次尝试,现在可以了。

这是更新的架构:http://sqlfiddle.com/#!9/8f084b/4

public class schools_list_fragment extends Fragment {

    school_view_model school_model ;


    school new_school ;



    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        }

        getActivity().setTitle("The Best Schools of All time");

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_card, container, false);

        RecyclerView recyclerView = view.findViewById(R.id.card_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.setHasFixedSize(true);

        final school_adapter adapter = new school_adapter();
        recyclerView.setAdapter(adapter);

        school_model = ViewModelProviders.of(this).get(school_view_model.class);


        school_model.get_all_schools().observe(this, new Observer<List<school>>() {
            @Override
            public void onChanged(@Nullable List<school> notes) {
                adapter.setSchools_list(notes);
            }
        });



        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    }


  }