我有3张桌子
id& status是表的列。这些表之间没有任何连接(没有主键 - 外键关系),我的意思是它们都是独立的表。
我每张桌子只有1条记录,所以只有1个id&表中只有1个状态。所以我想从每个表中获取状态以及仅单个查询中的表名
我的预期输出:
table Name status
Pricing 1
Billing 2
Compliance 3
注意:我正在寻找单一查询解决方案。
提前致谢。
答案 0 :(得分:0)
我认为你正在寻找这样的东西......
SELECT
STATUS,
'Pricing' as TableName
FROM
Pricing
UNION
SELECT
STATUS,
'Billing' as TableName
FROM
Billing
UNION
SELECT
STATUS,
'Compliance' as TableName
FROM
Compliance
或您可以使用子查询。
答案 1 :(得分:0)
您可以使用此查询。您只需创建一个包含“n”列的表编号,并在其中插入1到10个值。然后,下面的查询将按照您的期望工作。
select
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename, ',', numbers.n), ',', -1) tablename,
SUBSTRING_INDEX(SUBSTRING_INDEX(statuss, ',', numbers.n), ',', -1) status
from
numbers inner join (select 'Pricing,Billing,Compliance' as 'tablename',concat(Pricing.status,',',Billing.status,',',Compliance.status )as 'statuss'
from Pricing,Billing,Compliance) as s on CHAR_LENGTH(s.tablename)
-CHAR_LENGTH(REPLACE(s.tablename, ',', ''))>=numbers.n-1
答案 2 :(得分:0)
通过连接这些表来创建VIEW。并随时调用视图(单个查询结果)。你必须创建一次VIEW并随时在VIEW上激活查询。