1

私は2つのテーブルを持っています

table1 - どのセンサーが存在するかを定義するテーブル

serialN  |  sensor1  |  sensor2  | 
122      |    1      |    1      |
123      |    1      |    0      |

表 2 - 実際のセンサー データを含む表。

serialN  |  sensor1  |  sensor2  | 
123      |    23     |    -0.0F  |
123      |    22     |    -0.0F  |
122      |    19     |    -0.0F  |
123      |    33     |    -0.0F  |
122      |    26     |    -0.0F  |
123      |    24     |    -0.0F  |

PHP mysql クエリを実行して、対応する table1 カウンター部分が 1 の場合にのみテーブル 2 の列のみが選択される結果を取得する方法 特定の serialN について

したがって、serialN=123 のデータが必要な場合の結果は次のようになります。

serialN  |  sensor1  |
123      |    23     |
123      |    22     |
123      |    33     |
123      |    24     |
4

2 に答える 2

0

Mysql の case ステートメントはあなたをサポートします ( http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#operator_case )。PHP の策略は不要です。

select 
case when t1.sensor1=1 then t2.sensor1 when t1.sensor2=1 then t2.sensor2 end
from table1 t1
inner join table2 t2 on t1.serialN = t2.serialN
于 2013-11-13T21:15:30.500 に答える
0

これがニーズに合っているかどうかを確認してください:

SELECT CASE WHEN t1.sensor1 = 1 THEN t2.sensor1 ELSE null END AS 'SENSOR1',
       CASE WHEN t1.sensor2 = 1 THEN t2.sensor2 ELSE null END AS 'SENSOR2'
FROM table2 t2
INNER JOIN table1 T1 ON t1.serialN = t2.serialN

sqlfiddle demo

于 2013-11-13T21:28:43.860 に答える