MySQL ruft Daten aus mehreren Tabellen ab
P粉092778585
P粉092778585 2024-04-06 18:42:44
0
2
621

Ich habe eine eg_design Tabelle mit den folgenden Spalten:

- und eg_domains-Tabellen mit den folgenden Spalten:

- und eg_fonts-Tabellen mit den folgenden Spalten:

Jetzt möchte ich basierend auf $domain_id alle Daten in der eg_design 表中的所有数据、eg_domains 表中的一些数据以及 eg_fonts 表中的 font_name 列值但是eg_design-Tabelle, einige Daten in der -Tabelle und den font_name-Spaltenwert in der -Tabelle

abrufen, aber

in der eg_fonts 表中为我提供 2 个 font_name,就像在 eg_design-Tabelle habe ich

design_font

und

domain_font

In der Spalte sind zwei Schriftart-IDs vorhanden.

Die folgende Abfrage sollte mir also 2 Schriftartnamen aus der -Tabelle liefern, genau wie in der -Tabelle habe ich 2 Schriftart-IDs vorhanden.

$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' ");
Aber ich denke für diese Zeile

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

Die obige Abfrage funktioniert nicht.

Ich meine, ich kann alle Daten abrufen, aber nicht den Spaltenwert Schriftartname. Es wird nur der Spaltenwert

design_font🎜 zurückgegeben, nicht der Spaltenwert 🎜domain_font🎜. 🎜 🎜Können Sie mir helfen, dieses Problem zu lösen? 🎜 🎜🎜Das ist die Geige: 🎜 https://www.db-fiddle.com/f/mNscdKDNohpT3xidp3C9Mw/0🎜
P粉092778585
P粉092778585

Antworte allen(2)
P粉098417223

查看更新的答案

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
P粉116654495

基本上,您只需左连接同一个表 eg_fonts 两次即可。

请参阅 dbfiddle 。您可以尝试以下查询:

$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' ");

更改此:

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

对此:

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage