2013-12-06 5 views
1

У меня есть таблица первичный ключ которой является составной формируется на 3 колонки:как считать составной первичный ключ в MySQL

userID  FK of users table 
itemID  FK of items table 
itemType FK of itemtypes table 

Первичный ключ представляет собой комбинацию (идентификатор пользователя, ItemId, ItemType)

Предположим: itemID 1 - это ШАР, а itemType 1 - ЧЕРНЫЙ ЦВЕТ.
поэтому в приведенном ниже примере,

User 1 is selecting a BALL which is BLACK 
User 2 is selecting a BALL which is WHITE 
User 3 is selecting a BALL which is BLACK 


+------+------+--------+ 
|userID|itemID|itemType| 
+------+------+--------+ 
| 1 | 1 | 1 | 
+------+------+--------+ 
| 2 | 1 | 2 | 
+------+------+--------+ 
| 3 | 1 | 1 | 

Теперь я хочу, чтобы сосчитать всех пользователей, которые выбрали черный шар, Как я могу рассчитывать на первичный ключ этой таблицы, которая является композит

Благодаря передовой.

+1

Можете ли вы добавить некоторые примерные данные и ожидаемый результат. –

+0

см. Обновленное сообщение – Pars

ответ

2

сосчитать всех пользователей, которые выбрали черный шар, попробуйте этот запрос:

SELECT COUNT(userID) 
FROM table1 
WHERE itemID = 1 AND itemType = 1 

Я не уверен, что вы подразумеваете под «Как я могу рассчитывать на первичный ключ этой таблицы»

+0

Первичный ключ этой таблицы - это комбинация (идентификатор пользователя, itemID, itemType), так что не стоит считать первичный ключ? – Pars

+0

Я не вижу необходимости считать первичный ключ. Используя вышеуказанный запрос, вы можете получить количество пользователей с определенным ItemID и ItemType. –

3

I решено для этого путем согласования составного ключа и считая это:

SELECT COUNT(CONCAT(userID, '-', itemID, '-', itemType)) FROM myTable
Смежные вопросы