比较select语句的输出

时间:2016-04-08 05:34:44

标签: mysql sql

我的表1

    |  Participantsid   |   Validfrom         |    Validto          | 
    | 2,4,1             | 2016-02-21 10:22:00 | 2016-02-21 12:22:00 |
    | 2,4,1             | 2016-03-04 10:00:00 | 2016-03-04 10:25:00 |
    | 2,3,4,1           | 2016-02-19 10:43:00 | 2016-02-19 11:08:00 |
    | 2,3,4,1           | 2016-02-22 11:32:00 | 2016-02-22 11:57:00 |
    | 4,6,5             | 2016-02-20 17:00:00 | 2016-02-20 18:00:00 |
    | 1,2,5             | 2016-02-22 18:00:00 | 2016-02-22 19:00:00 |
    | 2,3,6,1           | 2016-03-23 10:00:00 | 2016-03-23 11:00:00 |
    | 1,2,3,5           | 2016-02-20 12:00:00 | 2016-02-20 14:00:00 |
    | 2,6               | 2016-02-20 12:00:00 | 2016-02-20 13:00:00 |

另一个表2

+--------------+------------+
| EmployeeName | EmployeeID |
+--------------+------------+
| Mathews      |          1 |
| Gerald       |          2 |
| Bravo        |          3 |
| Smith        |          4 |
| George       |          5 |
| Bailey       |          6 |
| Stephen      |          9 |
| Balu c       |         10 |

我有一些inputid = 1,5,6。 现在我必须将此输入id与table1中的Participantsid进行比较,以获得给定的validfrom和validto日期,如果有匹配,我需要获取与该id相对应的名称。

Emaple: - inputid = 1,2,3 for from 2016-02-22 18:00:00,to-2016-02-22 19:00:00 它应该给我o / p = mathews,gerald

我目前正在编写两个select语句,并使用一个for循环,它给出了结果但错误的

我正在尝试在单个查询中执行此操作,但无法接近我所需的output.please help

1 个答案:

答案 0 :(得分:2)

group_concatfind_in_setsub-query一起使用,可以获得所需的结果。

<强> SQLFiddle: http://sqlfiddle.com/#!9/ce893/1

select group_concat(EmployeeName) as `o/p`
from Table2 
where FIND_IN_SET(EmployeeID, 
    (select Participantsid from Table1 
    where Validfrom = '2016-02-22 18:00:00' and Validto = '2016-02-22 19:00:00'));