我有两个表作为table1和table2,它包含两个表中的Field1,Field2,Field3。我需要组合并显示Field3的计数和来自两个表的不同field2值。
例如:
Field1 Field2 Field3
1 | India | VERIFIED
2 | US | VERIFIED
3 | India | VERIFIED
我需要输出类似Field2的Count2,其中Field3 = Field3 =已验证
印度(2) 美国(1)
我对join语句一无所知,我是SQL PHP的初学者。 任何帮助表示赞赏。
答案 0 :(得分:2)
SELECT Field2, count(Field2)
FROM (SELECT * FROM table1 UNION ALL SELECT * FROM table2) AS t
WHERE t.Field3 = 'VERIFIED'
GROUP BY Field2
UNION
将两个sql查询结果合并为一个。您也可以在两次查询期间应用过滤器。
但是有两个具有完全相同字段的表表明数据库设计不正确 - 您可能会阅读一些关于database normalization的内容,以获得良好的关系数据库设计的线索。
更新:关于paqogomez的小提琴,我发现了一个小问题。我需要添加关键字ALL
以避免SQl将我的结果视为集合和重新传输双重条目(如果两个表中的两个条目完全相同),默认情况下应用DISTINCT
关键字。
答案 1 :(得分:0)
SELECT count(Field2) AS total,Field2
FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2) AS t
WHERE t.Field3='VERIFIED'
GROUP BY t.Field2;
答案 2 :(得分:0)
你可以通过尝试这样的方法只使用1个表来实现这个结果: -
SELECT COUNT(*) FROM TABLE1 WHERE FIELD3 = 'VERIFIED' GROUP BY FIELD2;
这可能对您有所帮助。