我有一個eg_design包含以下列的表格:

和eg_domains具有以下列的表格:

和eg_fonts具有以下列的表格:

現在,基于$domain_id我想從表中獲取所有資料,從eg_design表中獲取一些資料eg_domains,以及從表中獲取font_name列值但是在表中,我在design_font和domain_font列上存在 2 個字體 ID 。eg_fontseg_design
所以,下面的查詢應該從表中給我 2 個font_name ,因為在表上我有 2 個字體 ID。eg_fontseg_design
$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
uj5u.com熱心網友回復:
基本上,您只需要離開加入同一張表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
uj5u.com熱心網友回復:
查看更新的答案
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484580.html
標籤:mysql
上一篇:使用特定條件排除記錄
下一篇:SQL連接有一個我想要的兩倍列
