2015-08-02 4 views
1

Итак, я хочу подсчитать количество повторов из числа table2, которые имеют то же самое id как table1.Подсчитайте количество строк с одним и тем же идентификатором [PHP]

Я понимаю функцию mysqli_num_rows Funtion, но как я могу сделать это сосчитать rows от table2, которые согласующего id?

Всего новичков и еще ищете. Думал, что это поможет мне в правильном направлении. Спасибо за любую помощь!

+0

Вы должны сделать это в базе данных - не делать это в PHP. – mzedeler

+0

@mzedeler могу я спросить, почему это не очень хорошая идея? –

+0

Потому что вы получите много трафика между PHP и mysql. Это будет намного хуже, чем просто позволить mysql выполнить всю работу. – mzedeler

ответ

1

mysqli_num_rows возвращает количество строк из результата. Вы должны написать другой запрос возвращает количество строк в таблице 2 с тем же идентификатором

SELECT COUNT(*) 
FROM table2 
WHERE table2.id = <id> 
1
CREATE TABLE table1 (id INT); 
CREATE TABLE table2 (id INT); 

INSERT INTO table1 VALUES (1), (2), (3), (4); 
INSERT INTO table2 VALUES (2), (4); 

SELECT COUNT(*) 
    FROM table1 
    JOIN table2 
    ON table1.id = table2.id; 

Попробуйте здесь: http://sqlfiddle.com/#!9/0d289/1

0

Попробуйте это:

SELECT `table2`.`id`, COUNT(`table2`.`id`) AS `num_rows` 
    FROM `table2` 
    LEFT JOIN `table1` ON `table2`.`id` = `table1`.`id` 
    WHERE `table2`.`id` IS NOT NULL 
    GROUP BY `table2`.`id` 
    ORDER BY `table2`.`id` ASC 
0

Для только count

select count(*) 
    from table1, table2 
    where table1.id = table2.id 

Чтобы узнать, какой идентификатор и сколько

select table2.id, count(*) 
    from table1, table2 
    where table1.id = table2.id 
    group by table2.id 

The second case on sqlfiddle.com

Смежные вопросы