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

Sử dụng createNativeQuery để kết hợp hai thực thể không có khóa ngoại

Tôi đoán bạn phải thêm id một cách rõ ràng trong mệnh đề CHỌN:

SELECT s.id, s.subcategory_id, s.type, IF(s.type = 2, c2.name, c3.name) as name, c2.id as c2id, c3.id as c3id
    FROM show_subcategory s
    LEFT JOIN category2 c2 ON (s.type = 2 AND s.subcategory_id = c2.id)
    LEFT JOIN category3 c3 ON (s.type = 3 AND s.subcategory_id = c3.id)
    WHERE s.category1_id = ? ORDER BY s.order_list

Và điều chỉnh ResultSet như sau:

$rsm = new ResultSetMapping;
$rsm->addEntityResult('Acme\CoreBundle\Entity\ShowSubcategory', 's');
$rsm->addFieldResult('s', 'id', 'id');
$rsm->addFieldResult('s', 'subcategory_id', 'subcategoryId');
$rsm->addFieldResult('s', 'type', 'type');
$rsm->addFieldResult('s', 'order_list', 'orderList');

$rsm->addJoinedEntityResult('Acme\CoreBundle\Entity\Category2' , 'c2', 's', 'category2');
$rsm->addFieldResult('c2', 'c2id', 'id');
$rsm->addFieldResult('c2', 'name', 'name');

$rsm->addJoinedEntityResult('Acme\CoreBundle\Entity\Category3' , 'c3', 's', 'category3');
$rsm->addFieldResult('c3', 'c3id', 'id');
$rsm->addFieldResult('c3', 'name', 'name');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một lược đồ cơ sở dữ liệu có thể mở rộng để lưu trữ điểm số chơi gôn

  2. Làm cách nào để tôi có thể Nhập dữ liệu từ CSV sang MySQL?

  3. Tôi muốn lưu trữ mảng đối tượng trong MySQL trong từng cột riêng lẻ với Sequelize

  4. truy vấn trong codeigniter:lấy ở đâu hoặc

  5. Không thể cài đặt tiện ích mở rộng php-mysqli trên Centos