Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 - Fatal编程技术网

Php 是否使用一个公共字段从列中获取数据?

Php 是否使用一个公共字段从列中获取数据?,php,mysql,Php,Mysql,表exp\U通道数据作为ecd: id | field_id_16| img_src 1 | 2 | a.jpg 2 | 1 | b.jpg 3 | 3 | c.jpg 表pin_信息作为pi: id | look_week | member_id | is_pinned 1 | 2 | 2 | yes 2 | 1 | 2 | yes 3 | 3 |

表exp\U通道数据作为ecd:

id | field_id_16| img_src

1  |  2        | a.jpg
2  |  1        | b.jpg
3  |  3        | c.jpg
表pin_信息作为pi:

id | look_week | member_id | is_pinned

1  |  2        | 2         | yes
2  |  1        | 2         | yes
3  |  3        | 1         | yes
我想做什么:

$sql="
  SELECT 
    ecd.field_id_17 as pin_img
  FROM exp_channel_data ecd
  WHERE 
     ecd.field_id_16=(
       SELECT look_week 
       FROM pin_info pi 
       WHERE
         pi.member_id='$member_id' 
         AND is_pinned='yes'
     )
";
从表ecd中获取成员的img src数组(假设为2),并且is_pinted=yes。我仅有的公共字段是field_id_16和look_week

我所做的:

$sql="
  SELECT 
    ecd.field_id_17 as pin_img
  FROM exp_channel_data ecd
  WHERE 
     ecd.field_id_16=(
       SELECT look_week 
       FROM pin_info pi 
       WHERE
         pi.member_id='$member_id' 
         AND is_pinned='yes'
     )
";

我无法获取数组。错误是子查询返回的行数超过1行

它说的是正确的,因为有两行的成员id为2请尝试使用join

SELECT ecd.img_src as pin_img FROM exp_channel_data ecd 
JOIN pin_info pi ON (ecd.field_id_16 = pi.look_week )
WHEHER pi.member_id='$member_id' AND pi.is_pinned='yes'

我想你在
exp\u channel\u data

中没有
字段id\u 17
如果我在
上使用
连接ecd会怎么样。我的意思是为什么joi pin\u info而不是ecd。我得到了结果。我只是想问你在from子句之后已经提到了ecd,所以ecd将与pin\u info表连接。它给了我一个数组中的数组。所有连接都给出了吗您可以在相同的模式中看到结果?联接只提供所需的数据集这取决于您如何使用任何服务器端语言操纵数据联接与数组无关,数组使用服务器端语言而不是mysql查询您可以解释where子句吗?where ecd.field_id_16 in(2,1)基于子查询。IN用于多个值。