简体   繁体   中英

Mysql select from table by comparing value in another table

I have two tables first and second.

first Table:

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

second Table:

T_ID      Partner_id      date
  1          2          12345678
  3          4          32164584

If input T_id is given. Then corresponding Partner_id is taken and it is compared with the ID from first table and corresponding row should be selected. Can you please tell me. In php I can write this with two queries but I want it to be in a single query.

Queries in 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]");

But, how to combine this two statements?

The specified result can be returned using a query with a join operation.

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

Note that there is a potential for this to return more rows that the original, if the first query returns more than one row. (That is, we don't assume that T_ID is unique in second , or that every row with a given T_ID value will have identical values for Partner_id .)

There are other query patterns that will return an equivalent result, but the join operation is the normative pattern.

   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 )

try to use union ,see this this link

where The SQL UNION operator combines the result of two or more SELECT statements.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM