检查具有特定ID的2个不同表中的列值并返回单个值

时间:2016-02-15 08:03:48

标签: php mysql

Tabel_1:

Id    test_id  testname    passfail
1      1001       test1      pass
2      1001       test2      fail
3      1002       test11     pass
4      1002       test12     pass
5      1002       test13     fail

Tabel_2:

Id    test_id  testname    passfail
1      1001       test1      pass
2      1001       test2      pass
3      1001       test3      pass
4      1002       test11     pass
5      1002       test12     pass
6      1002       test13     fail
7      1002       test13     fail

我想检查两个表(Tabel_1和Tabel_2)中的passfail列,使用特定的test_id,如1001.如果任何行失败并且具有特定ID(如10001),则只有在失败或任何行没有失败时才会返回查询在列passfail中,然后返回值将被传递。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

SELECT test_id,min(passfail) as passfail FROM(
    SELECT * from table_1
    UNION ALL
    SELECT * FROM table_2) as unioned
WHERE test_id = 1001
GROUP BY test_id

你不需要加入这个表和联合所有通常比连接更好的性能。你可以为每一个选择min(passfail),因为fail更小,所以如果有一个失败值,它将被返回,如果没有,则返回传递