cari
Soal Jawab MySQL mendapat data daripada berbilang jadual
MySQL mendapat data daripada berbilang jadual
P粉092778585 2024-04-06 18:42:44 pandangan 1148

0

Saya mempunyai eg_design jadual dengan lajur berikut:

dan eg_domains jadual dengan lajur berikut:

dan eg_fonts jadual dengan lajur berikut:

Sekarang, berdasarkan $domain_id Saya mahu mendapatkan semua data dalam jadual eg_design 表中的所有数据、eg_domains 表中的一些数据以及 eg_fonts 表中的 font_name 列值但是eg_design, beberapa data dalam jadual dan nilai lajur font_name dalam jadual

tetapi

dalam jadual eg_fonts 表中为我提供 2 个 font_name,就像在 eg_design font, saya ada

dan

domain_font

Terdapat 2 ID fon hadir pada lajur.

Jadi pertanyaan di bawah sepatutnya memberi saya 2 font_name daripada jadual , sama seperti dalam jadual , saya mempunyai 2 ID fon.

$get_domain = mysqli_query( $mysqli, "SELECT edg.*, ed.domain_name, egf.* 
  FROM eg_design AS edg 
    LEFT JOIN eg_domains AS ed ON edg.domain_id = ed.domain_id 
    LEFT JOIN eg_fonts AS egf ON egf.font_id = edg.design_font AND egf.font_id = edg.domain_font 
  WHERE edg.domain_id = '$domain_id' ");
Tetapi saya fikir untuk baris ini

egf.font_id = edg.design_font AND egf.font_id = edg.domain_font

Pertanyaan di atas tidak berfungsi.

Maksud saya saya boleh mendapatkan semua data tetapi bukan nilai lajur font_name. Ia hanya mengembalikan nilai lajur

design_font🎜, bukan nilai lajur 🎜domain_font🎜. 🎜 🎜Bolehkah anda membantu saya menyelesaikan masalah ini? 🎜 🎜🎜Ini biolanya: 🎜 https://www.db-fiddle.com/f/mNscdKDNohpT3xidp3C9Mw/0🎜
Your Answer
serahkan

2 jawapan
0

Lihat jawapan yang dikemas kini

https://www.db-fiddle.com/f/mNscdKDNohpT3xidp3C9Mw/5

SELECT edg.*, ed.domain_name, egf.font_name
FROM eg_design edg 
LEFT JOIN eg_domains ed ON edg.domain_id = ed.domain_id 
LEFT JOIN eg_fonts egf ON egf.font_title = edg.design_font 
WHERE edg.domain_id = 1
2024-04-07 15:42:37

serahkan

0

Pada asasnya, anda baru sahaja meninggalkan sertai meja yang sama eg_fonts dua kali.

Lihat dbfiddle. Anda boleh mencuba pertanyaan berikut:

$get_domain = mysqli_query( $mysqli, "SELECT edg.*, ed.domain_name, egf.font_name AS design_font_name , egf2.font_name AS domain_font_name
  FROM eg_design AS edg 
    LEFT JOIN eg_domains AS ed ON edg.domain_id = ed.domain_id 
    LEFT JOIN eg_fonts AS egf ON egf.font_id = edg.design_font 
    LEFT JOIN eg_fonts AS egf2 ON egf2.font_id = edg.domain_font 
  WHERE edg.domain_id = '$domain_id' ");

Tukar ini:

LEFT JOIN eg_fonts AS egf ON egf.font_id = edg.design_font AND egf.font_id = edg.domain_font

Untuk ini:

LEFT JOIN eg_fonts AS egf ON egf.font_id = edg.design_font 
LEFT JOIN eg_fonts AS egf2 ON egf2.font_id = edg.domain_font
2024-04-07 09:36:40

serahkan

Hot Tools

vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)

vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)

Muat turun koleksi perpustakaan runtime yang diperlukan untuk pemasangan phpStudy

VC9 32-bit

VC9 32-bit

VC9 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu

Kotak alat pengaturcara PHP versi penuh

Kotak alat pengaturcara PHP versi penuh

Programmer Toolbox v1.0 PHP Persekitaran Bersepadu

VC11 32-bit

VC11 32-bit

VC11 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan