我有一个 eg_design
表,其中包含以下几列:
和 eg_domains
表,其中包含以下列:
和 eg_fonts
表,其中包含以下列:
现在,基于 $domain_id 我想获取 eg_design
表中的所有数据、eg_domains
表中的一些数据以及 eg_fonts
表中的 font_name 列值但是在eg_design
表中,我在design_font和domain_font列上存在2个字体ID。
因此,下面的查询应该从 eg_fonts
表中为我提供 2 个 font_name,就像在 eg_design
表中一样,我存在 2 个字体 ID。
$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' ");
但我认为对于这一行
egf.font_id = edg.design_font AND egf.font_id = edg.domain_font
上述查询不起作用。
我的意思是我可以获取所有数据,但无法获取font_name列值。它仅返回 design_font 列值,而不返回 domain_font 列值。
你能帮我解决这个问题吗?
这是小提琴: https://www.db-fiddle.com/f/mNscdKDNohpT3xidp3C9Mw/0
查看更新的答案
https://www.db-fiddle.com/f/mNscdKDNohpT3xidp3C9Mw/5
基本上,您只需左连接同一个表
eg_fonts
两次即可。请参阅 dbfiddle 。您可以尝试以下查询:
更改此:
对此: