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

Truy vấn MySQL phức tạp

Bạn có thể làm như sau:

SELECT 
    t1.post_id, 
    t1.meta_value AS name, 
    t2.meta_value AS season, 
    t3.meta_value AS episode
FROM
    (
    SELECT *
    FROM the_table
    WHERE meta_key = 'name'
    ) t1
INNER JOIN
    (
    SELECT *
    FROM the_table
    WHERE meta_key = 'season'
    ) t2 ON t1.post_id = t2.post_id
INNER JOIN
    (
    SELECT *
    FROM the_table
    WHERE meta_key = 'episode'
    ) t3 ON t1.post_id = t3.post_id

Điều này sẽ cho bạn kết quả:

| post_id | name       | season | episode |
-------------------------------------------
|    1    | Smallville | 1      | 1       |
|    2    | Smallville | 1      | 2       |

Ở dạng này, mọi hoạt động dễ dàng hơn nhiều.

Những gì bạn cần là thêm:

WHERE name = 'Smallville'
ORDER BY season, episode


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kết nối php gộp chung mysql

  2. mysql chọn nội dung xung quanh từ khóa

  3. Đã thay đổi PDO ::ATTR_EMULATE_PREPARES thành FALSE và nhận được lỗi số thông số không hợp lệ

  4. Làm thế nào để nhận được phạm vi số nguyên ngẫu nhiên mysql?

  5. In dữ liệu bảng mysql php