Tôi đang phát triển một trang web nơi mọi người có thể công bố nhà của họ cho thuê. Tôi đang sử dụng php 5.2.0 và MySQL 5 +Cách tham gia nhiều bảng liên quan đến các bảng khác
các ấn phẩm được lưu trữ trong một bảng như thế này
ta_publications
+---+-------------+------+
|id | name | date |
+---+-------------+------+
| 1 | name_001 | ... |
| 2 | name_002 | ... |
| 3 | name_003 | ... |
+---+-------------+------+
Tôi có ấn phẩm khác nhau, trong đó có "tính năng" như "internet", "made dịch vụ "," truyền hình vệ tinh ", v.v ..
Các tính năng này có thể thay đổi trong tương lai và tôi muốn có thể thêm/xóa/sửa đổi chúng, vì vậy tôi lưu trữ chúng trong cơ sở dữ liệu trong bảng.
ta_features
+---+-------------+
|id | name |
+---+-------------+
| 1 | Internet |
| 2 | Wi-Fi |
| 3 | satelital tv|
+---+-------------+
có liên quan đến các ấn phẩm bằng cách sử dụng bảng sau
ta_publication_features
+---+-------------+----------------+
|id | type_id | publication_id |
+---+-------------+----------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
+---+-------------+----------------+
Tôi nghĩ nó khá dễ hiểu; Có một ấn phẩm được gọi là name_001 có internet, wi-fi và truyền hình vệ tinh.
tôi có cùng một dữ liệu schema cho những hình ảnh, tôi lưu trữ chúng trong bảng này
ta_images
+---+-------------+
|id | src |
+---+-------------+
| 1 | URL_1 |
| 2 | URL_2 |
| 3 | URL_3 |
+---+-------------+
Và sử dụng bảng sau để gắn chúng với các ấn phẩm
ta_publication_images
+---+-------------+----------------+----------+
|id | img_id | publication_id | order |
+---+-------------+----------------+----------+
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 1 |
| 3 | 3 | 1 | 2 |
+---+-------------+----------------+----------+
thứ tự cột cho thứ tự các ấn phẩm cần được hiển thị khi liệt kê một ấn phẩm đơn lẻ.
Philipp Reichart cung cấp cho tôi một truy vấn sẽ tìm kiếm và nhận tất cả các ấn phẩm có các tính năng nhất định. Nó hoạt động để liệt kê các ấn phẩm, tôi không thể sửa đổi nó để trả lại dữ liệu tôi cần.
Vì vậy, tôi figured tôi sẽ chạy truy vấn đó và nhận được tất cả các ấn phẩm mà vượt qua các tiêu chí tìm kiếm và sau đó sử dụng một truy vấn để liệt kê chúng.
Danh sách các ấn phẩm này phải bao gồm tất cả dữ liệu xuất bản (mọi thứ trên ta_publications) + tất cả các tính năng của nó + src ảnh quan trọng nhất (thứ tự 0). Tôi có thể, đối với mỗi ấn phẩm, có hai truy vấn đơn giản sẽ trả về, riêng biệt, hình ảnh quan trọng nhất và tất cả các tính năng, nhưng khi liệt kê 25 ấn phẩm trên mỗi trang, nó sẽ là 1 truy vấn tìm kiếm + (2 truy vấn trên mỗi ấn phẩm * 25 ấn phẩm) = 51 truy vấn khác nhau, rõ ràng không hiệu quả lắm.
EDIT:
Câu hỏi của tôi là, làm thế nào tôi có thể tạo ra một truy vấn SQL, đưa ra một số id xuất bản, sẽ trở lại: tất cả các dữ liệu công bố (tất cả mọi thứ trên ta_publications) + tất cả các tính năng của nó + quan trọng nhất (theo thứ tự 0) image src
Cũng bằng văn bản câu hỏi vì bạn rất mới. :) + bỏ phiếu – Layke
Bạn chưa thực sự đặt câu hỏi. Hiển thị những gì bạn đang cố gắng đạt được. –
Vì vậy, bạn có yêu cầu một truy vấn trả về tất cả các ấn phẩm, theo id, bao gồm các tính năng và hình ảnh hàng đầu của họ không? –