日安!
所以我一直在摆弄MySQL,遇到了一个障碍。代码如下:
SELECT table_name, table_rows, data_length, update_time FROM information_schema.tables
WHERE table_name IN
('table_1' , 'table_2' , 'table_3' , 'table_4')我要做的是通过information_scheme检查表的状态。而且它工作得很好--直到上面代码中的任何给定表都不存在。我们的目标是得到一个如下所示的结果:
+------------------+------------+-------------+---------------------+
| table_name | table_rows | data_length | update_time |
+------------------+------------+-------------+---------------------+
| table_1 | 7041979 | 5497161940 | 2016-04-07 02:53:41 |
| table_3 | NULL | NULL | NULL |但我找不到办法。读了一大堆关于它的信息,我仍然无法理解它。有一种感觉,这应该简单而优雅地解决,但如何解决呢?
谢谢。
发布于 2016-04-08 19:26:02
请改用left join:
SELECT tn.table_name, t.table_rows, t.data_length, t.update_time
FROM (SELECT 'table_1' as table_name UNION ALL
SELECT 'table_2' as table_name UNION ALL
SELECT 'table_3' as table_name UNION ALL
SELECT 'table_4' as table_name
) tn LEFT JOIN
information_schema.tables t
ON tn.table_name = t.table_name;https://stackoverflow.com/questions/36498360
复制相似问题