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

Memilih beberapa kolom/bidang di subquery MySQL

Ya, Anda bisa melakukan ini. Bakat yang Anda butuhkan adalah konsep bahwa ada dua cara untuk mengeluarkan tabel dari server tabel. Salah satu caranya adalah ..

FROM TABLE A

Cara lainnya adalah

FROM (SELECT col as name1, col2 as name2 FROM ...) B

Perhatikan bahwa klausa pilih dan tanda kurung di sekitarnya adalah meja, meja virtual.

Jadi, dengan menggunakan contoh kode kedua Anda (saya menebak kolom yang ingin Anda ambil di sini):

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN (
 SELECT at.id AS id, at.translation AS trans, at.language AS lang, a.attribute
 FROM attributeTranslation at
) b ON (a.id = b.attribute AND b.lang = 1)

Perhatikan bahwa attribute tabel asli Anda adalah tabel pertama dalam gabungan ini, dan tabel virtual ini saya sebut b adalah tabel kedua.

Teknik ini sangat berguna ketika tabel virtual adalah tabel ringkasan dari beberapa jenis. misalnya

SELECT a.attr, b.id, b.trans, b.lang, c.langcount
FROM attribute a
JOIN (
 SELECT at.id AS id, at.translation AS trans, at.language AS lang, at.attribute
 FROM attributeTranslation at
) b ON (a.id = b.attribute AND b.lang = 1)
JOIN (
 SELECT count(*) AS langcount,  at.attribute
 FROM attributeTranslation at
 GROUP BY at.attribute
) c ON (a.id = c.attribute)

Lihat bagaimana kelanjutannya? Anda telah membuat tabel virtual c berisi dua kolom, digabungkan dengan dua kolom lainnya, menggunakan salah satu kolom untuk ON klausa, dan mengembalikan yang lain sebagai kolom di kumpulan hasil Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pymysql Cursor.fetchall() / Fetchone() Mengembalikan Tidak Ada

  2. Aktifkan Logging dari Kueri Lambat (Log Kueri Lambat) di Database MySQL

  3. mysqldump mengekspor hanya satu tabel

  4. Ubah format tampilan bidang tanggal dan waktu di MySQL PHP

  5. Mengoptimalkan panggilan fungsi yang tersimpan dalam klausa SELECT dan WHERE