Я не присоединяюсь к MySQL, поэтому, возможно, вы могли бы дать мне руку. У меня есть следующие таблицы:
Table a
Fields ID,name
Table b
Fields aID,cID,ID,found
Table c
Fields ID,name
Результат, который я хочу получить, следующий: мне нужны все записи, где b.found = 1. Из этих записей я не хочу a.id или a.name, но я хочу, чтобы количество записей было были возвращены, если бы я этого хотел. Поэтому, если есть пять записей, которые имеют b.found = 1 и c.id = (например) 3, тогда я хочу получить возвращаемое значение 5, c.id и c.name.
Кто-то может это сделать?
На самом деле это то, что я хочу получить из базы данных: Список всех записей в таблице C и количество записей в таблице B, которые нашли = 1 и b.c_id = c.id
Table: a
Fields: ID, name
Table: b
Fields: aID, cID, found
Table: c
Fields: ID, name
SELECT c.ID, c.name, COUNT(1)
FROM b
JOIN c ON c.ID = b.cID AND b.found=1
GROUP BY c.ID
SELECT c.id, c.name, COUNT(*)
FROM c
INNER JOIN b
ON c.id = b.c_id
AND b.found = 1
GROUP BY c.id, c.name
Я думаю, что это обеспечило бы необходимый результат -
select count(*), b.cID, c.name from b
inner join c on c.id=b.cID and b.found=1
group by b.cID
Что-то вроде:
SELECT count(`c`.*),
`c`.`id`,
`c`.`name`
FROM `b`
JOIN `c`
ON `c`.`id` = `b`.`c_id`
WHERE `b.found` = 1
SELECT COUNT (*), c.id, c.name FROM a, b, c WHERE a.id = b.a.id AND c.id = b.a.id AND b.found = 1 AND c.id = idThatIAmSearchingFor
Извините, если я не получил синтаксис точный, но я считаю, что основная структура, которую вы хотите. Функция COUNT возвращает количество строк, найденных в запросе.
SELECT COUNT (*) AS Count, c.id, c.name FROM b присоединяется к a.id = b.a_id WHERE b.found = 1 GROUP BY c.Id;
COUNT возвращает количество записей в каждой группе из группы GROUP BY.