Mysql通过比较另一个表中的值从表中选择

时间:2015-01-14 05:36:33

标签: php mysql

我有两张桌子,第一张和第二张。

第一张表:

ID NAME     ADDRESS
1  test     testing address
2  test1    testing address 
3  test2    testing address
4  test3    testing address

第二张表:

T_ID      Partner_id      date
  1          2          12345678
  3          4          32164584

如果输入T_id。然后获取相应的Partner_id,并将其与第一个表中的ID进行比较,并选择相应的行。 你能告诉我吗? 在php中我可以用两个查询来编写它,但我希望它在一个查询中。

php中的查询:

$q=mysqli_query($conn, "SELECT Partner_id from second where T_ID=1");
$qa=mysqli_fetch_array($q);  
$w=mysqli_query($conn, "SELECT * from first where ID=$qa[0]");

但是,如何结合这两个陈述?

4 个答案:

答案 0 :(得分:2)

可以使用带有 join 操作的查询返回指定的结果。

SELECT f.*
  FROM first f
  JOIN second s
    ON s.Partner_id = f.ID
 WHERE s.T_ID=1

请注意,如果第一个查询返回多行,则有可能返回原始行。 (也就是说,我们不假设T_ID中的second是唯一的,或者T_ID值的每一行都具有Partner_id的相同值。 )

还有其他查询模式将返回等效结果,但 join 操作是规范模式。

答案 1 :(得分:0)

   SELECT * FROM first WHERE ID IN( SELECT Parent_id FROM second WHERE T_ID = 1 )

     or 

    SELECT * FROM first WHERE ID = ( SELECT Parent_id FROM second WHERE T_ID = 1 )

答案 2 :(得分:0)

尝试使用union,请参阅此this link

其中SQL UNION运算符组合了两个或多个SELECT语句的结果。

答案 3 :(得分:0)

SELECT * FORM first_table AS f
JOIN second_table AS s
ON s.parent_id =f.id
WHERE s.T_ID = $id