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

mendapatkan data dari dua tabel di mysql, bergabung tidak akan berfungsi di sini

Jika saya mengerti dengan benar, ini akan melakukan apa yang Anda butuhkan:

$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
    // Do your outputting here.
}

Sunting

Sesuai permintaan Anda, saya akan melanjutkan dan menjelaskan kueri tersebut. Bagian yang mungkin membingungkan Anda adalah subquery ini:

(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))

IF EXISTS memberitahu MySQL untuk mengembalikan TRUE atau FALSE jika bagian yang mengikutinya 'ada' (berisi hasil). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 cukup beri tahu MySQL untuk menemukan baris di user_specialty dimana s.id = us.sid (ID khusus cocok) dan us.uid = '$id' (ID adalah milik pengguna).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan yang disiapkan PHP\MYSQL

  2. Permintaan MySQL untuk beberapa tabel menjadi tabel sekunder beberapa item?

  3. Tampilkan satu baris per istilah pencarian, ganti default jika tidak ditemukan

  4. Bagaimana cara menyimpan tanggal yang sangat lama dalam database?

  5. Mysql:Hapus semua kunci asing secara terprogram