目前我得到的是与law_case的案例相匹配的
$query1 = "SELECT * FROM law_case WHERE id =?";
$query1vals = array($_GET['id']);
$ids = $adb->selectRecords($query1, $query1vals, false);
$a = $ids['case_type_id'];
$b = $ids['funding_pref'];
#
$query2 = "SELECT type_name FROM case_type WHERE id =?";
$query2vals = array($a);
$ids1 = $adb->selectRecords($query2, $query2vals, false);
$d = $ids1['type_name'];
#
$query3 = "SELECT * FROM expertise WHERE expertise_desc =?";
$query3vals = array($d);
$ids2 = $adb->selectRecords($query3, $query3vals, false);
$c = $ids2['id'];
#
$query4 = "SELECT * FROM individual_expertise WHERE expertise_id =?";
$query4vals = array($c);
$ids3 = $adb->selectRecords($query4, $query4vals, false);
$e = $ids3['individual_id'];
#
$query5 = "SELECT * FROM individual WHERE id =?";
$query5vals = array($e);
$ids4 = $adb->selectRecords($query5, $query5vals, false);
$f = $ids4['network_member_id'];
#
$query6 = "SELECT * FROM network_member WHERE id =?";
$query6vals = array($f);
$ids5 = $adb->selectRecords($query6, $query6vals, false);
它所做的只有一个network_member。我想使用INNER JOIN,JOIN或LEFT JOIN,并使用while look从individual_expertise
表中获取每个network_member的不同member_name和url,或者谁的个人拥有相同的expertise_id。
我是JOIN
新手,我试过这段代码,但它不能工作:
$sql = "SELECT member_name, url
FROM individual_expertise
LEFT JOIN individual
USING (individual_id)
LEFT JOIN network_member
USING (network_member_id)
WHERE expertise_id = ?";
$ids3 = $adb->selectRecords($sql, $query4vals, false);
echo $ids3['member_name'];
发布于 2014-02-14 18:59:11
您需要了解JOIN
类型的概述。根据您的逻辑需求,您必须使用INNER, LEFT, RIGHT, FULL
连接构建查询。您可以假设条件语句中的INNER
join等于&&
或AND
运算符,我的意思是这两个表中的记录必须匹配。而LEFT
join将返回join的左表中的所有行和join的右表中的匹配行。并且RIGHT
与LEFT
相反。FULL
join是条件语句中运算符中的||
或OR
的一个示例。我的意思是要么两张桌子都匹配。所以你必须根据你所需要的逻辑来加入。
发布于 2014-02-14 19:02:12
你知道内连接和左连接的区别吗?我想你不需要。你需要一个内部连接。
我认为这是您问题的正确解决方案:
SELECT
network_member.member_name,
network_member.url
FROM
network_member
INNER JOIN
individual ON individual.network_member_id = network_member.id
INNER JOIN
individual_expertise ON individual_expertise.individual_id = individual.id
WHERE
individual_expertise.expertise_id = ?
https://stackoverflow.com/questions/21777325
复制相似问题