我有两张桌子
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 |
如果只有相应的table1计数器部分为1,那么只有选择表2中的那些列才能获得PHP mysql查询才能得到结果对于给定的serialN
所以我的结果如果我想要serialN = 123的数据应该是
serialN | sensor1 |
123 | 23 |
123 | 22 |
123 | 33 |
123 | 24 |
答案 0 :(得分: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
答案 1 :(得分: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