Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách in mọi mục được tạo ra từ nhóm theo câu lệnh

Bạn có thể JOIN truy vấn của bạn ngược lại bảng chính dưới dạng truy vấn phụ, để lấy các hàng và tên tệp ban đầu:

SELECT 
  main.number, 
  main.file
FROM 
  table AS main
  /* Joined against your query as a derived table */
  INNER JOIN (
    SELECT number, COUNT(*) AS sum domains 
    FROM table
    WHERE RIGHT(file, 2) = '_1' 
    GROUP BY number 
    HAVING sum domains > 1
    /* Matching `number` against the main table, and limiting to rows with _1 */
  ) as subq ON main.number = subq.number AND RIGHT(main.file, 2) = '_1'

http://sqlfiddle.com/#!2/cb05b/6

Lưu ý rằng tôi đã thay thế LIKE '%_1' của bạn với RIGHT(file, 2) = '_1' . Tuy nhiên, khó có thể nói cái nào sẽ nhanh hơn nếu không có điểm chuẩn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mệnh đề MySQL UNION

  2. Kết hợp ANSI 1992 JOIN và COMMA trong một truy vấn

  3. CakePHP 3 - Phân tích cú pháp ngày với LocalStringFormat để sửa định dạng SQL và xác thực chính xác

  4. CodeIgniter update_batch mà không thay thế dữ liệu trước đó, giá trị được cập nhật tiếp theo sẽ đặt bằng dấu phẩy được phân tách dưới dạng gia số

  5. MySQL LEFT OUTER JOIN đang gặp một số vấn đề về kết quả cuối cùng