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

Apakah ada cara yang lebih baik untuk mendapatkan data dari dua tabel sekaligus dengan Sphinx/MySQL?

Anda tidak dapat benar-benar lolos dengan tidak memiliki dua kueri MySQL. Anda bisa, dengan hanya menggabungkannya menjadi satu, dengan UNION. Atau dengan membuat 'tabel' gabungan baru (baik tampilan, atau tampilan terwujud) - tetapi benar-benar tidak berpikir itu sepadan dengan usaha. Dua kueri baik-baik saja - seperti yang Anda katakan mereka diindeks.

Anda dapat menggunakan satu indeks sphinx (dan karenanya satu kueri penelusuran) - dengan membuat indeks gabungan baru. Karena Anda mengatakan kunci Anda tidak unik, pasti harus membuat kunci sintetis baru.

misalnya...

sql_query = SELECT userid*2 AS id, 1 AS table_id, firstname AS one, lastname as two FROM tellycards_user_data \
              UNION \
            SELECT (id*2)+1 as id, 2 AS table_id, name AS one, screenshot AS two FROM tellycards_ripples
sql_attr_unit = table_id

Ini memberi Anda kunci palsu , dan atribut untuk mengidentifikasi dari tabel mana hasilnya berasal. Anda dapat menggunakan ini untuk mendapatkan tabel aslinya. (ada banyak cara lain untuk melakukan hal yang sama)

Ini memungkinkan Anda untuk menjalankan satu kueri, bisa mendapatkan hasil gabungan.

... TAPI tidak yakin itu ide yang bagus. Karena jika hasilnya asimetris, Anda bisa kehilangan hasil. Katakanlah ada 20 hasil yang cocok dari satu tabel, dan 10 dari yang lain. Katakanlah Anda menunjukkan 10 hasil teratas, sekarang karena batasnya, hasil dari tabel kedua, bisa jadi disembunyikan di bawah tabel pertama (contoh ekstrim, pada kenyataannya, semoga mereka bercampur). Dua kueri terpisah, memungkinkan Anda menjamin, untuk mendapatkan BEBERAPA hasil dari setiap tabel.

... jadi setelah semua itu. Tetap dengan apa yang Anda dapatkan. Tidak apa-apa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih dari tabel mysql WHERE field='$array'?

  2. Bagaimana cara menggabungkan beberapa kolom menjadi satu dan memformat dengan string khusus?

  3. mysqli_error() mengharapkan tepat 1 parameter, 0 diberikan

  4. Kesalahan sintaks MySQL:dekat '1' di baris 1

  5. Mengapa kueri MySQL ini menggunakan Rand() tidak mengembalikan hasil sekitar sepertiga dari waktu?