您好我有多个产品表,例如product_shirt,product_pants等,除此之外还有一个通用产品表。无论如何,我已经遇到了这样一种情况:我需要通过从所有常见的表中选择一些字段来进行UNION查询。颜色领域是衬衫,裤子和袋子......
是否有任何查询来获取多个表中存在的列名?我试图谷歌它但没有找到任何相关的结果
由于
更新:
Table names : prod_rugs, prod_furniture, prod_accessories, prod_generic.
Colum names : color, size and (I want to know all the column names that exisits in all above mentioned table)
我不需要颜色或大小的值......我需要知道哪些字段在这些表中是常见的
答案 0 :(得分:2)
是的,您可以使用INFORMATION_SCHEMA
:
SELECT
column_name,
table_name
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema='test'
GROUP BY
column_name
HAVING
count(1)>1
您应该将test
替换为您的数据库名称或课程。上面的查询将导致列名称和表名称出现多次 - 因此,比一个表中更多(因为,显然,一个表不能具有多次具有相同名称的列)
如果你想要一些特定的桌子和列名,然后添加相应的条件:
SELECT
column_name,
table_name
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
-- database name:
table_schema='test' &&
-- table names:
table_name IN (
'prod_rugs',
'prod_furniture',
'prod_accessories',
'prod_generic'
) &&
-- column names:
column_name IN (
'color',
'size'
)
GROUP BY
column_name
HAVING
count(1)>1
答案 1 :(得分:0)
您需要使用sql join来执行此操作。请检查此链接 http://www.w3schools.com/sql/sql_join.asp