0

这是我的问题,我有两个表,其中一个是连接(一列 - 团队 ID,其他 - 人员 ID)我从一个确切的团队中找到所有人员 ID(这里是“t1”)并将其放入一个数组,这里一切正常。

$id1 = mysql_query("SELECT id FROM connections WHERE team='t1'");
$id11 = array();
while(($row =  mysql_fetch_assoc($id1))) {
    $id11[] = $row;
}

echo "";
print_r($id11);
echo "";

直到这里一切正常,在 print_r 中我看到了我想看到的数组项。但从这里 [粪便] 发生。我想从“persons”表中选择人名,该表具有前一个数组($id11)中的 id。最后我得到一个空数组。

$kom1 = mysql_query("SELECT name FROM persons WHERE s_id IN('".join("','", $id11)."')");


//$kom1 = mysql_query("SELECT name FROM persons WHERE s_id IN(".implode(',',$id11).')'); //this one doesnt work too
$kom11 = array();
while(($row1 =  mysql_fetch_assoc($kom1))) {
$kom11[] = $row1;
}

echo "";
print_r($kom11);
echo "";

什么都试过了,请帮帮我,谢谢。

4

3 回答 3

1

试试这个:

$id11[] = $row['id'];
于 2012-10-25T19:45:37.340 回答
1

在第二个查询中直接使用子查询:

SELECT * FROM blah WHERE boing IN (SELECT id FROM blah2 WHERE team=1337)

应该在每个不那么花哨的数据库中工作

于 2012-10-25T19:47:40.850 回答
1

我的问题是:你为什么要先用两个查询来做这件事?

您可以简单地使用:

select p.name from persons p, connections c
where c.team = 't1'
and c.id = p.s_id

(或等效的显式连接)。

于 2012-10-25T19:49:21.183 回答