两条查询SQL的语句的数据合并到一起

大神们好,我目前遇到这样一个问题。
我现在有一个SQL语句A,

SELECT
    TABLE_NAME table_name,
    COLUMN_NAME id,
    DATA_TYPE str,
    IS_NULLABLE nullable,
    COLUMN_COMMENT remark 
FROM
    INFORMATION_SCHEMA.COLUMNS 
WHERE
    table_schema = 'test'

这个语句是我拿来查询我这个库的所有表名,字段名,数据类型,是否为空和字段注释的。

我有一个SQL语句B,

SELECT
    TABLE_NAME,
    TABLE_COMMENT,
    TABLE_ROWS
FROM
    information_schema.TABLES 
WHERE
    table_schema = 'test';

这个语句是我拿来查询我这个库的所有表名和表注释的。

因为目前这两个语句没有办法合并,所以我才用的方法是先查询出来语句A的数据,然后使用foreach查询语句B的数据插入到语句A后面。

但是目前因为语句A的数据量太大,语句B的数据量太小,所以这个办法目前只能实现批量处理,我想问下各位大神,这个问题我应该怎么去解决呢

附上语句A的查询总条数和语句B的查询总条数以及我的垃圾代码
image.png
image.png
image.png

我想实现的效果是:一次性取出所有的数据,把值都给追加好。因为我是个菜鸡,不知道这方面能不能实现,还望各位大神赐教

阅读 3k
1 个回答

问题已解决。

在同事的帮助下,这个思路可以在引入第三条语句的时候进行一次性获取。
第三条语句C

SELECT
    TABLE_NAME AS table_name1,
    count( column_name ) AS count 
FROM
    information_schema.COLUMNS 
WHERE
    TABLE_SCHEMA = 'test' 
GROUP BY
    TABLE_NAME 
ORDER BY
    table_name1 ASC

废话不多少,上代码:
image.png

通过$lsit可以获取到数据库的数据表名和这个表的字段数量,通过字段数量我们可以循环遍历整个数组赋值为一个新数组,使当前这个新数组的长度等同于SQL语句A的长度,接下来正常循环判断即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题