如何在一个查询中查询两个表

时间:2015-03-06 17:09:42

标签: sql

我有表格tags,我还要从表格questions计算所有在tags列中tag名称来自{{1}的行数据库。

结合我的两个问题:

tags

3 个答案:

答案 0 :(得分:0)

您必须至少有一个共同的字段,使用它来关联表:

SELECT t.name,q.COUNT(*) FROM questions q, tags t WHERE `tags`
LIKE t.name and q.tag=t.name;

答案 1 :(得分:0)

SELECT t.name, Count(*) FROM tags t
join questions q on t.tag_id = q.tag_id
Where t.name like '%(the tag column from tags table)%'
group by t.name

如果您正在寻找Batches of SQL Statements

然后你可以通过在第一次查询结束时放置;来做这样的事情

SELECT * FROM `tags` WHERE 1 ;
SELECT COUNT(*) FROM `questions` WHERE `tags` 
LIKE '%(the tag column from tags table)%'

答案 2 :(得分:0)

有点不清楚问题是什么,但这是我猜的。从标签表中选择所有行,并为每个标签计算问题表中出现的次数:

select tags.*,
       (select count(*) from question
        where question.tags like '%' || tags.tag || '%')
from tags

||是ANSI SQL for concat。一些dbms产品有自己的方式,例如concat(str1, str2)