Php mysql通过附加条件获得不存在的结果

Php mysql通过附加条件获得不存在的结果,php,mysql,Php,Mysql,使用mysql和php 我有两张桌子,我是法国人,所以桌子的名字听起来很奇怪, 但我想保留它们作为原件,以避免测试时出现错误 “树木”(指种类) “树形区域”(指类别的子域) 该系统的目的是能够进行更好的控制 在依赖于两件事的子域上:类别和zipcode。 在我深入研究这个问题之前,先向你解释一下, 对于同一类别,让我们说“汽车” 对于zipcode 37000,子域将是“超级跑车” 但对于zipcode 93000,同一类别的子域将是例如“the93supercars” 这就是为什么“树木生长

使用mysql和php

我有两张桌子,我是法国人,所以桌子的名字听起来很奇怪, 但我想保留它们作为原件,以避免测试时出现错误

“树木”(指种类)
“树形区域”(指类别的子域)

该系统的目的是能够进行更好的控制
在依赖于两件事的子域上:类别和zipcode。
在我深入研究这个问题之前,先向你解释一下,
对于同一类别,让我们说“汽车”
对于zipcode 37000,子域将是“超级跑车”
但对于zipcode 93000,同一类别的子域将是例如“the93supercars”

这就是为什么“树木生长区”包含以下字段:
id-树丛_id-副-领地-州

其中,“DEP”是zipcode,“domaine”是subdomain,“statut”是bool 它决定是否激活子域

现在,有趣的部分开始了

如果可能的话,我想在一个sql查询中完成它。 (否则,我知道有数千种php方法可以实现相同的目标)

我现在想要的是从给定的类别数组中获取所有子域 和给定的zipcode。 如果未设置子域,则它不存在于“arborescence_domaine”表中

但我想得到这样一个结果:

cat_id域名部门
3车辆场合37
14固定器37
20 www-NULL
26服务潜水员37
28 www-NULL
37 www-NULL
43 www-NULL
3467 www.NULL

这意味着,如果未设置子域,它可能会返回默认的“www”值

现在没有zipcode,我在几小时前就学会了怎么做:

这是一个工作请求(显示上述数组的请求)
选择a.id作为cat_id,IFNULL(d.domaine,'www')作为domaine,d.DEP
从树冠a
左连接树状结构域d在d上。树状结构域id=a.id
其中a.id在(3,14,20,26,28,373467,43)中

但是现在使用zipcode,我没有得到预期的结果:

请求如下:

选择a.id作为cat_id,IFNULL(d.domaine,'www')作为domaine,d.DEP
从树冠a
左连接树状结构域d在d上。树状结构域id=a.id
其中a.id位于(3,14,20,26,28,373467,43)和d.DEP='37'

给出以下结果:

cat_id域名部门
3车辆场合37
14固定器37
26服务潜水员37

“数据库中不存在子域”已经消失了

现在的问题是: 是否有可能得到第一个结果, 但是使用zipcode过滤呢


(我以为我明白了,但后来又出现了一个新问题……一如既往……

您的ON子句中应该有
d.DEP

SELECT a.id as cat_id, IFNULL(d.domaine, 'www') as domaine, d.DEP
FROM arborescence a
LEFT JOIN arborescence_domaine d 
    ON d.arborescence_id=a.id AND d.DEP='37'AND d.status
WHERE a.id in(3,14,20,26,28,37,3467,43);

对我不知道可以在左连接中组合on子句。你的答案就是我一直在寻找的答案。现在我的应用程序要摇滚了!师父,谢谢您分享您的知识,我现在真的觉得更有力量了;)