Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将匹配条件的值分组到单个不同数组_Php_Mysql_Sql - Fatal编程技术网

Php 将匹配条件的值分组到单个不同数组

Php 将匹配条件的值分组到单个不同数组,php,mysql,sql,Php,Mysql,Sql,我有一张这样结构的桌子: MyObject(id,名称,类别id,t1、t2、t3、t4) t1。。。tn是表的n个外键 MyType(id、名称) 给定一个category_id,我想要一个列表,其中包含具有给定category_id的myobject“使用”的所有MyType的id 我可以通过php在某些周期中剖析流程来实现这一点,但我更愿意采用直接SQL方法 例如: MyObject1(1,'q',1,1,2,3,NULL) MyObject2(2,'w',1,1,2,NULL,NULL)

我有一张这样结构的桌子:

MyObject(id,名称,类别id,t1、t2、t3、t4)

t1。。。tn是表的n个外键

MyType(id、名称)

给定一个category_id,我想要一个列表,其中包含具有给定category_id的myobject“使用”的所有MyType的id

我可以通过php在某些周期中剖析流程来实现这一点,但我更愿意采用直接SQL方法

例如:

MyObject1(1,'q',1,1,2,3,NULL)

MyObject2(2,'w',1,1,2,NULL,NULL)

MyObject3(3,'e',2,5,3,NULL,NULL)

我的预期结果是categoy_id==1:

类型={1,2,3,5}

我的预期结果是categoy_id==2:

类型={3,5}

我的预期结果是categoy_id==432:

类型={}


谢谢

我想这比我以前想象的要简单,这段代码解决了我的需求

SELECT t1
FROM
    (SELECT DISTINCT s.t1 
     FROM MyObject s 
     WHERE s.category_id = 1 AND s.t1 IS NOT NULL) AS q
UNION 
SELECT t2
FROM
    (SELECT DISTINCT s.t2 
     FROM MyObject s 
     WHERE s.category_id = 1 AND s.t2 IS NOT NULL) AS w
UNION 
SELECT t3
FROM
    (SELECT DISTINCT s.t3 
     FROM MyObject s 
     WHERE s.category_id = 1 AND s.t3 IS NOT NULL) AS e
UNION 
SELECT t4
FROM
    (SELECT DISTINCT s.t4 
     FROM MyObject s 
     WHERE s.category_id = 1 AND s.t4 IS NOT NULL) AS r
UNION
SELECT t5
FROM
    (SELECT DISTINCT s.t5 
     FROM MyObject s 
     WHERE s.category_id = 1 AND s.t5 IS NOT NULL) AS t
ORDER BY t1 ASC