mysql php查询案例根据第一个表中的列选择第二个表中的列
我有两张桌子 表1-定义存在哪些传感器的表mysql php查询案例根据第一个表中的列选择第二个表中的列,php,mysql,Php,Mysql,我有两张桌子 表1-定义存在哪些传感器的表 serialN | sensor1 | sensor2 | 122 | 1 | 1 | 123 | 1 | 0 | 表2-具有实际传感器数据的表 serialN | sensor1 | sensor2 | 123 | 23 | -0.0F | 123 | 22 | -0.0F |
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查询以获得仅选择表2中的那些列的结果(仅当给定序列的对应表1计数器部分为1时)
所以,如果我想要serialN=123的数据,我的结果应该是
serialN | sensor1 |
123 | 23 |
123 | 22 |
123 | 33 |
123 | 24 |
Mysql的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
看看这是否符合您的需要:
选择t1.sensor1=1时的情况,然后选择t2.sensor1,否则将null结束为“sensor1”,
当t1.sensor2=1时,则t2.sensor2否则为空,以“sensor2”结束
来自表2 t2
T1.serialN=t2.serialN上的内部联接表1 T1
当表1中的传感器2为0时,传感器2是否可以为空?或者您想要动态的列数?或者它们不能同时为1?@FilipeSilva sensor2不为空。可能存在这样的情况,即sensor1和sensor2在表1上都可以是1。我对null引用的要求是,如果您可以使用一个始终返回两列的查询,但每当表1中的sensor2为0时,您在sensor2的结果查询中就会得到null。谢谢,但它似乎在sensor 2上返回null。你能看到我更新的问题吗?可能是我说得不对。@aVC。此查询始终返回两列,但每当table1值为0时,它将返回null,否则将返回table2值。如果您只需要一列,您可能需要在php代码中对准备好的语句执行一些操作,但很抱歉,我帮不了您。如果表1上的sensor2为0,则sensor2将为null。是否有一种方法仅在table1 value=1时选择列?