簡體   English   中英

Mysql通過比較另一個表中的值從表中選擇

[英]Mysql select from table by comparing value in another table

我有兩張桌子第一和第二張。

第一張表:

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 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 。)

還有其他查詢模式將返回等效結果,但連接操作是規范模式。

   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 )

嘗試使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM