首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL从多个表中获取数据

MySQL从多个表中获取数据
EN

Stack Overflow用户
提问于 2022-06-01 08:00:23
回答 2查看 52关注 0票数 0

我有一个eg_design表,其中有以下列:

和具有以下列的eg_domains表:

和具有以下列的eg_fonts表:

现在,基于$domain_id,我想从eg_design表中获取所有数据,从eg_domains表中获取一些数据,从eg_fonts获取font_name列值,但是在eg_design表中,我在E 116>design_E 217和E 118域字体列上存在两个字体id。

因此,下面的查询应该从表中给出2个font_name,就像在eg_design表上存在2个字体ID一样。

代码语言:javascript
运行
复制
$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' ");

但我觉得这句话

代码语言:javascript
运行
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-01 08:58:12

基本上,您只需要离开连接相同的表eg_fonts两次。

[医]小提琴。您可以尝试以下查询:

代码语言:javascript
运行
复制
$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' ");

改变这一点:

代码语言:javascript
运行
复制
LEFT JOIN eg_fonts AS egf ON egf.font_id = edg.design_font AND egf.font_id = edg.domain_font 

对此:

代码语言:javascript
运行
复制
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 
票数 1
EN

Stack Overflow用户

发布于 2022-06-01 08:33:58

见最新答案

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

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72458295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档