我有两张桌子,第一张和第二张。
第一张表:
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]");
但是,如何结合这两个陈述?
答案 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