共有2个表:主题和消息。
科目表:
----id---- ----title----
1 Subject 1
2 Subject 2
3 Subject 3
消息表:
----id---- ----subject---- ----message----
1 1 Message to Subject 1
2 1 Message to Subject 1
3 2 Message to Subject 2
如何获得主题的mysql_num_rows
,消息中有任何消息?结果必须为2,因为主题1在messages
中包含邮件,主题2在messages
中有邮件,但主题3在messages
中没有收到任何邮件。
类似的东西:
mysql_num_rows(mysql_query("SELECT * FROM subjects ...
答案 0 :(得分:4)
您通常会为此目的使用.as-console-wrapper { max-height: 100% !important; top: 0; }
或in
:
exists
这可以很容易地修改,以使主题没有消息。
如果您在表之间定义了正确的外键关系,那么您只需计算消息中的主题:
select count(*)
from subjects s
where exists (select 1 from messages m where m.subject_id = s.id);
MySQL中的聚合非常昂贵。在某些情况下,这会表现得更好。但是,存在select count(distinct m.subject_id)
from messages;
消息(subject_id)`。
答案 1 :(得分:0)
试试这个:我想我们可以使用PokemonDayCareDBEntities1
db.PlayerPkmns.Find(id)
答案 2 :(得分:0)
试试这个
$result = $mysqli->query("SELECT messages.id, messages.message,
subjects.title,subjects.id as subjectID
FROM messages
INNER JOIN subjects
ON messages.subject=subjects.id");
$row_cnt = $result->num_rows;
echo $row_cnt;
答案 3 :(得分:0)
如果您要在title
中搜索messages
,请尝试此操作。
select count(s.title) as result
from subjects s
where exists (select 1 from messages m
where instr(m.message,s.title)> 1
)
说明:instr(m.message,s.title)
将在title
中搜索messages
并返回起始位置(整数)。如果找不到,您将获得0
。所以instr(m.message,s.title)> 1
只适用于预期的匹配。
然后count(s.title)
会给你不同的数量。