Php Mysql通过比较另一个表中的值从表中选择
我有两张桌子,第一张和第二张 第一张表:Php Mysql通过比较另一个表中的值从表中选择,php,mysql,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 3
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]");
但是,如何组合这两条语句?可以使用带有联接操作的查询返回指定的结果
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 )
SELECT f.*
FROM first f
JOIN second s
ON s.Partner_id = f.ID
WHERE s.T_ID=1
请注意,如果第一个查询返回多行,则可能会返回比原始查询更多的行。(也就是说,我们不假设t\u ID
在秒中是唯一的,或者具有给定t\u ID
值的每一行对于Partner\u ID
具有相同的值)
还有其他查询模式将返回相同的结果,但联接操作是标准模式。尝试使用union,请参见此
其中,SQL UNION运算符组合两个或多个SELECT语句的结果
SELECT * FORM first_table AS f
JOIN second_table AS s
ON s.parent_id =f.id
WHERE s.T_ID = $id