簡體   English   中英

無法通過“ WHERE s_id IN($ array)”選擇mysql中的項目

[英]Cannot select items in mysql with “WHERE s_id IN ($array)”

這是我的問題,我有兩個表,其中一個是連接(一列-團隊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 "";

直到這里一切都OK,在print_r中,我看到了我想看到的數組項。 但是從這里開始[糞便]發生了。 我傾向於從'persons'表中選擇人名,該表的ID是前一個數組($ id11)的。 最后,我得到一個空數組。

$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 "";

嘗試了一切,請幫助我,謝謝。

嘗試這個:

$id11[] = $row['id'];

直接在第二個查詢中使用子查詢:

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

應該在每個不太理想的數據庫中工作

我的問題是:為什么首先要進行兩個查詢?

您可以簡單地使用:

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

(或等效的顯式聯接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM