我正在创建一个 php 应用程序,现在正在创建数据库接口(interface)代码。在我的应用程序中,它们是三个表:user、network、user_network。他们有以下栏目:
user<-------------------->user_network<-------------------->network
user_ID un_ID network_ID
user_Name un_Member network_Name
un_Network network_Description
我创建了以下查询,该查询查询 user_network 表并返回用户所属的所有网络的 ID:
$STH = $DBH->query("SELECT * FROM user_network WHERE nm_Member ='$userID'");
然后,我使用以下代码从该数组中提取 network_ID:
$DB_NetworkID = array();
foreach($STH as $row)
{
$DB_NetworkID[$counter] = $row['nm_networkID'];
$counter++;
}
print_r($DB_NetworkID);
该数组现在包含用户所属的所有网络 ID,如下所示
Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 ) //network IDs = 1, 3, 5, 7
我现在想从网络表中提取行,如何从 ID 包含在数组中的网络数据库中选择行?
感谢您的帮助。
最佳答案
您应该使用 JOIN 并使其成为单个查询:
SELECT
*
FROM
user
INNER JOIN
user_network
ON
user.user_ID = user_network.un_ID
INNER JOIN
network
ON
user_network.un_Network = network.network_ID
WHERE
user_ID = '$userID'
该查询将为您提供用户所属的所有网络。
关于php - 从多个表中选择行的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655823/