因此用户从下拉列表中选择一个值。我取这个值,把它放到一个变量中,然后从数据库中选择保存所选值的那个表A的ID值。
所以现在我正在尝试使用该ID值来获取多对多关系表,该表具有从表A到另一个表B的选定值。多对多关系表具有两个ID 。我如何使用PHP进行比较?
所以它会像:
$A = $_POST['a'];
$sql = "SELECT a, aID from TABLEA WHERE a = $A";
然后我该怎么做才能将aID与多对多关系表进行比较,然后获取该表中的其他ID,然后获取该ID以从表B中获取值?
答案 0 :(得分:1)
您可以通过SQL中的联接来执行此操作:
SELECT table_b.* FROM ab_association
LEFT JOIN table_b ON table_b.id = ab_association.b_id
WHERE ab_association.a_id = $specified_id;
这假设您的多对多联接表名为ab_association
并且有两列,一列名为a_id
,对应table_a.id
,b_id
对应到table_b.id
。
更新:我删除了表名别名,因为它们似乎让您感到困惑。
另一个更新:在PHP中,这是你将如何做到这一点(没有业务逻辑):
<?
// connect to db here
$a_id = mysql_real_escape_string($_POST['a_id']);
$result = mysql_query("SELECT table_b.* FROM ab_association LEFT JOIN table_b ON table_b.id = ab_association.b_id WHERE ab_association.a_id = $a_id;");
// in your view/template
while(false !== (mysql_fetch_object($result))) {
// build your output for each row
}
?>
答案 1 :(得分:0)
SELECT *
FROM table_a
LEFT JOIN ab_association ON table_a.aID = ab_association.aID
LEFT JOIN table_b ON table_b.bID = ab_association.bID
WHERE table_a.a = $A
注意: