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

Propel:chọn cột từ các bảng tham gia bí danh

Tôi hơi dự phòng sau khi đọc bình luận của jchamberlain về where lắng nghe câu trả lời của anh ấy và tôi đi đến kết luận rằng

  • bạn phải luôn sử dụng UpperCamelCase kiểu khi bạn nhập tên cột trong các hàm đẩy, mặc dù đôi khi nó hoạt động tốt nếu bạn không sử dụng kiểu này
  • giải pháp phụ thuộc vào phiên bản Propel

Có lẽ không có giải pháp nào cho Propel <=1.6.7 (hoặc có thể truy vấn SQL thô là giải pháp duy nhất), bởi vì bất kể tôi thử bao nhiêu, tôi luôn kết thúc với Cannot fetch ColumnMap for undefined column: ID_TABLE_B Propel ngoại lệ.

Đối với Propel> =1.6.8, điều này sẽ hoạt động:

Nếu bạn cần mảng với các cột bí danh là kết quả

TableAQuery::create()
  ->useTableBQuery('a')
      // some filters methods
  ->endUse()
  ->useTableBQuery('b')
      // some filters methods
  ->endUse()
  ->select(array('a.Value1', 'b.Value2')) // notice a.value_1 or b.value_2 won't work
  ->find();

Nếu bạn cần đối tượng với các cột ảo từ các cột bí danh

TableAQuery::create()
  ->useTableBQuery('a')
      // some filters methods
  ->endUse()
  ->useTableBQuery('b')
      // some filters methods
  ->endUse()
  ->withColumn('a.Value1') // notice a.value_1 won't work
  ->withColumn('b.Value2') // notice b.value_2 won't work
  ->find();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bộ nhớ đệm câu lệnh chuẩn bị với MySQL &JDBC

  2. Giá trị trả về Dapper MySQL

  3. Tập lệnh MySQL với các tham số

  4. MySQL INSERT INTO trực tiếp với mệnh đề WHERE

  5. cần trả về hai tập dữ liệu với hai mệnh đề where khác nhau