MySQL查询两行为一

时间:2016-02-03 18:09:10

标签: mysql

我正在处理Wordpress中CF7(表单插件)中的CFDB(联系表单数据库)中的数据。表中的数据组织在一个表中,其中包含以下列。每个提交包含编号为0到9999的字段,#9999始终包含提交的登录信息。 submit_time变量本质上是表单提交的ID。

ID      submit_time     form_name   field_name      field_value field_order file
7881    1454460768.7523 Insurance   provider        UBH         0           NULL
. . . 
7900    1454460768.7523 Insurance   InsuranceCard   card.pdf    19          [BLOB - 71.8 KiB]
7901    1454460768.7523 Insurance   Submitted Login email@e.com 9999        NULL

除非有上传的文件,否则文件列通常为NULL。我正在尝试进行一个查询,列出以这种特定格式上传的提交内容:

date                message_title   from_login  
1454460768.7523     InsuranceCard   email@e.com 

从这两个查询中提取数据:

SELECT submit_time AS date, field_name AS message_title
FROM wp_cf7dbplugin_submits
WHERE field_order = 9999    

SELECT field_value AS from_login
FROM wp_cf7dbplugin_submits
WHERE file IS NOT NULL  

如何将它们组合在一起以生成此格式的列表:

date                message_title   from_login  
1454460768.7523     InsuranceCard   email@e.com     

3 个答案:

答案 0 :(得分:0)

您可以在查询中使用logical and

SELECT submit_time AS date, field_name AS message_title, field_value AS from_login
FROM wp_cf7dbplugin_submits
WHERE field_order = 9999 
  AND file is NOT NULL

答案 1 :(得分:0)

一种可能的方法:

unhidden

(注意:假设每次提交只有一个附件。)

答案 2 :(得分:0)

假设在一个时间戳上只有一个提交(并且没有没有上传文件的时间戳),您可以使用以下查询:

cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent e) {
        if (e.getValueIsAdjusting()) {
            int selectedRow = table.getSelectedRow();
            int selectedColumn = table.getSelectedColumn();
            if (selectedRow >= 0) {
                int rowModelId = table.convertRowIndexToModel(selectedRow);
                int colModelId = table.convertColumnIndexToModel(selectedColumn);
                if (colModelId == 0) {
                    Boolean valorCol= (Boolean) documents[rowModelId][0];
                    if (valorCol== true) {
                        documents[rowModelId][0] = false;
                    }
                    else {
                        documents[rowModelId][0] = true;
                    }
                    dataModel.fireTableCellUpdated(rowModelId,0);
                }
            }
        }
        table.clearSelection();
    }
});