Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Propel:memilih kolom dari tabel gabungan alias

Saya melakukan sedikit riset setelah membaca komentar jchamberlain tentang where caluse di bawah jawabannya dan saya sampai pada kesimpulan bahwa

  • Anda harus selalu menggunakan UpperCamelCase style saat Anda mengetik nama kolom di fungsi propel, meskipun terkadang berfungsi dengan baik jika Anda tidak menggunakan gaya ini
  • solusi bergantung pada versi Propel

Mungkin tidak ada solusi untuk Propel <=1.6.7 (atau mungkin kueri SQL mentah adalah satu-satunya solusi), karena tidak peduli seberapa banyak saya mencoba, saya selalu berakhir dengan Cannot fetch ColumnMap for undefined column: ID_TABLE_B Mendorong pengecualian.

Untuk Propel>=1.6.8 ini akan berhasil:

Jika Anda membutuhkan array dengan kolom alias sebagai hasilnya

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();

Jika Anda membutuhkan objek dengan kolom virtual dari kolom alias

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. Bagaimana cara menghapus karakter baris baru dari baris data di mysql?

  2. Bagaimana cara membuat beberapa kueri kolom WHERE IN di pembuat kueri Doctrine?

  3. fungsi php mysql dengan parameter opsional

  4. Bagaimana cara membuat diagram lingkaran yang menampilkan jumlah sesuatu yang didaftarkan oleh setiap orang?

  5. Apa cara paling efisien untuk memilih n baris terakhir dalam tabel tanpa mengubah struktur tabel?