вы почти у цели, просто вам нужно добавить оператор group by
select
count(orders.id) as order_count,
sum(orders.total_cost) as total_spent,
CONCAT_WS(", ", `last_name`, `first_name`) AS `customer_name`,
users.id as user_id
from users
left join orders on users.id = orders.user_id and orders.status != 'Canceled'
group by `customer_name`, user_id
, также обратите внимание, что если вы делаете левое соединение и вам нужно добавить ограничение на левую соединенную таблицу, вам нужно поставить это в пункте on
. Если вы поместите условие левой стороны в предложение where, левое соединение неявно преобразуется во внутреннее соединение
Когда UITableViewCell показывает элемент управления переупорядочением, он также добавляет пустой белый UIView шириной 1 пиксель к своему массиву подпредставлений.
Откровенно говоря: это ошибка, которую Apple должен исправить.
Однако вы можете обойти это, находя это раздражающее представление каждый раз, когда оно появляется, и устанавливая его цвет фона на прозрачный. Подсказка : раздражающее белое представление всегда является последним в массиве подпредставлений UITableViewCell и всегда имеет ширину 1 пиксель. Мы воспользуемся этим, чтобы найти его.
Когда вы включаете редактирование таблицы, сделайте все видимые раздражающие виды в 1 пиксель прозрачными. Таким образом, метод действия, который переключает режим «редактирования» в таблице, может выглядеть следующим образом:
- (IBAction)edit:(id)sender
{
[tableView setEditing:!tableView.editing animated:YES];
for (UITableViewCell *cell in [tableView visibleCells])
{
if (((UIView *)[cell.subviews lastObject]).frame.size.width == 1.0)
{
((UIView *)[cell.subviews lastObject]).backgroundColor =
[UIColor clearColor];
}
}
}
и продолжайте делать это для всех новых представлений, когда они становятся видимыми, путем реализации этого в вашем UITableViewDelegate:
Здесь нет быстрого ответа, но можете ли вы определить, какой конкретный вид отвечает за эту белую линию?
Один из приемов, который я иногда использую для «отладки» такого рода проблем, - это изменение фона цвета представлений, которые являются вероятными подозреваемыми. Я мог бы установить цвет фона TableViewCell, а также его contentView на красный или синий и посмотреть, можете ли вы изменить цвет линии. Это, по крайней мере, даст вам представление о природе проблемы и, возможно, некоторые идеи о том, как ее решить.
Фактически вы можете поймать представление и изменить его, пока ячейка переходит в состояние редактирования. Добавьте (и настройте) переопределение этого метода в свой пользовательский UITableViewCell.
- (void)didTransitionToState:(UITableViewCellStateMask)state
{
//modified from comments here:
//http://www.erasetotheleft.com/post/overriding-the-drag-reorder-control-in-uitableviewcell/
if(state == UITableViewCellStateEditingMask)
{
for (UIControl *control in self.subviews)
{
// Find the Reorder Control
if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellReorderControl")] && [control.subviews count] > 0)
{
// Do something with the control
}
}
}
}