Потянув несколько таблиц с MySQL - PullRequest
1 голос
/ 12 июня 2011

Хорошо, у меня есть несколько таблиц, на которых я пытаюсь сформировать одну строку SQL.Пример таблиц:

Table1

CardID    CardName    SetID    Rarity
1         Card #1     1        1
2         Card #2     1        2
3         Card #3     1        2
4         Card #4     2        2

Таблица 2

SetID     SetName     BID
1         Set #1      1
2         Set #2      2

Таблица 3

BID       BName
1         BName #1
2         BName #2

Что мне нужно, так это строка SQLэто будет считать карты для набора и показывать редкость для каждой карты в этой таблице.Я хочу вывод, похожий на: SetID, SetName, BName, TotalCards, Total of Rarity 1, Total of Rarity 2

Таким образом, вывод будет похож на возвращаемые столбцы:

1, Set #1, BName #1, 3, 1, 2
2, Set #2, BName #2, 1, 0, 1

1 Ответ

2 голосов
/ 12 июня 2011
SELECT 
  c.SetID
  , s.SetName
  , b.BName 
  , count(*) as TotalCards
  , sum(if(c.rarity = 1,1,0) as Total_of_Rarity_1
  , sum(if(c.rarity = 2,1,0) as Total_of_Rarity_2
FROM card c
INNER JOIN `set` s ON (s.SetID = c.SetID)
INNER JOIN b on (b.BID = s.BID)
GROUP BY c.SetID

Ссылки: http://dev.mysql.com/doc/refman/5.5/en/join.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...