Tôi có một chức năng để lấy tất cả các thẻ từ một bảng:CodeIgniter - kỷ lục hoạt động - sql - phức tạp tham gia
function global_popular_tags() {
$this->db->select('tags.*, COUNT(tags.id) AS count');
$this->db->from('tags');
$this->db->join('tags_to_work', 'tags.id = tags_to_work.tag_id');
$this->db->group_by('tags.id');
$this->db->order_by('count', 'desc');
$query = $this->db->get()->result_array();
return $query;
}
tôi đã bàn nhau gọi là 'công việc'. Bảng 'work' có cột 'draft' với các giá trị bằng 1 hoặc 0. Tôi muốn COUNT (tags.id) xem xét liệu tác phẩm có thẻ cụ thể có ở chế độ nháp (1) hay không.
Giả sử có 10 tác phẩm được gắn thẻ, ví dụ: 'thiết kế'. COUNT sẽ là 10. Nhưng 2 trong số các tác phẩm này ở chế độ nháp, vì vậy COUNT thực sự phải là 8. Tôi làm cách nào để quản lý việc này?
Khi nghi ngờ bạn luôn có thể chuyển sang vani SQL. – janosrusiczki
Để phòng ngừa, bạn cần tránh sử dụng bộ chọn '*' trong các truy vấn của bạn, đây không phải là thực hành tốt, luôn xác định tên cột bạn muốn trả về, * KHÔNG BAO GIỜ * làm 'CHỌN * TỪ ...' – Jakub