有没有办法将多个数据库查询连接的结果转换为一个字段定义的结果?像这样:
SELECT COLUMN_NAME
, DATA_TYPE
, CHARACTER_MAXIMUM_LENGTH
, NUMERIC_PRECISION
, NUMERIC_SCALE
, EXTRA
, COLUMN_KEY
, COLUMN_DEFAULT
, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'TABLE_NAME'
AND TABLE_SCHEMA = 'DATA_BASE_NAME';当一张桌子很容易时。问题是当查询涉及多个表时。
编辑:对不起,我放错了SQL
发布于 2013-11-26 20:52:03
更新
当一张桌子很容易时。问题是当查询涉及多个表时。因此,您正在寻找如何检索某个数据库中的所有表。我说的对吗?
那么,你为什么不试试这个呢?(删除某些栏目以缩短答案):
SELECT TABLE_NAME
, COLUMN_NAME
, ORDINAL_POSITION
, DATA_TYPE
, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'jsheo_test'
ORDER BY TABLE_NAME, ORDINAL_POSITION;我已经在您的查询中添加了ORDINAL_POSITION,以便正确显示表中列的位置。其输出如下所示:
+------------+-------------+------------------+-----------+-------------+
| TABLE_NAME | COLUMN_NAME | ORDINAL_POSITION | DATA_TYPE | IS_NULLABLE |
+------------+-------------+------------------+-----------+-------------+
| a | a | 1 | int | YES |
| b | a | 1 | int | YES |
| test | name | 1 | varchar | YES |
| test | age | 2 | int | YES |
| test | spent | 3 | int | YES |
| test | gender | 4 | char | YES |
+------------+-------------+------------------+-----------+-------------+Orig.回答
抱歉的。我听不懂你的问题。下面的查询总是返回'database‘(即使删除了DISTINCT。只有一行产生)。% 1表的相同列名不能大于%1。
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'unique'
AND TABLE_NAME = 'database';你在找这个吗?
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'unique'
AND TABLE_SCHEMA = 'database'https://stackoverflow.com/questions/20217452
复制相似问题