2016-04-08 15 views
2

マイ表1select文の出力を比較し

| 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を持っています。 これで、指定されたvalidfromとvalidtoの日付に対して、この入力IDとtable1のParticipantsidを比較しなければなりません。一致するものがあれば、そのIDに対応する名前を取得する必要があります。

Emaple: - inputid's = 1,2,3からfrom-2016-02-22 18:00:00、to-2016-02-22 19:00:00 これは私にo/p = mathewsを与えるはずです。 、ジェラルド

私は現在、2つのSELECT文を書いていないし、私に結果が得られるループのための1つを使用しますが、その間違った

私は単一のクエリでそれをやろうとしていますが、私の必要output.pleaseに近い手立てていますヘルプ

+0

があなたのデータを正規化 – Strawberry

答えて

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')); 
関連する問題