结合两个表并在sql php中显示数据与count

时间:2014-07-07 05:59:11

标签: php mysql sql join

我有两个表作为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的初学者。 任何帮助表示赞赏。

3 个答案:

答案 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;

这可能对您有所帮助。