Используя левое соединение, я пытаюсь подсчитать количество фигур с существующими покупками (0, если покупок нет). Я также группирую их по типу формы. Но все результаты, которые я получаю, равны 0.
Форма таблицы:
id shape colour
1 circle red
2 rectangle blue
3 triangle green
4 star yellow
5 cross purple
6 moon orange
Форма_покупки таблицы:
id price
3 3.24
2 1.95
3 5.42
4 6.32
5 4.21
1 7.45
3 5.97
3 4.31
1 6.32
4 7.82
SQL: SELECT shapes.shape, COUNT(IF(shape_purchase.price != NULL, 1, NULL)) FROM shapes LEFT JOIN shape_purchase ON shapes.id = shape_purchase.id GROUP BY shapes.id
<- Что здесь не так? </strong>
Результат:
shape COUNT(IF(shape_purchase.price != NULL, 1, NULL))
circle 0
rectangle 0
triangle 0
star 0
cross 0
moon 0
Что-то не так с тем фактом, что я называю shape_purchase.price? Или левое соединение усложняет ситуацию?
К вашему сведению, SELECT * FROM shapes LEFT JOIN shape_purchase ON shapes.id = shape_purchase.id
выглядит так:
id shape colour id price
3 triangle green 3 3.24
2 rectangle blue 2 1.95
3 triangle green 3 5.42
4 star yellow 4 6.32
5 cross purple 5 4.21
1 circle red 1 7.45
3 triangle green 3 5.97
3 triangle green 3 4.31
1 circle red 1 6.32
4 star yellow 4 7.82
6 moon orange NULL NULL