我有兩個表,名爲table_1
和table_2
。該模式有點如下。MySQL從多個表查詢?
TABLE_1
+----+--------+-----+------------+
| id | reg_no | ... | table_2_id |
+----+--------+-----+------------+
TABLE_2
+----+-----+
| id | ... |
+----+-----+
列table_2_id
在table_1
指塔id
在table_2
。現在,我必須獲得table_2_id
的特定reg_no
,然後使用該table_2_id
從table_2
獲取數據。
我目前做如下,它的工作原理。
$stmt = $this->conn->prepare("SELECT table_2_id from table_1 WHERE reg_no = ?");
$stmt->bind_param("s", $reg_no);
$stmt->execute();
$stmt->bind_result($table_2_id);
$stmt->fetch();
$stmt->close();
$stmt = $this->conn->prepare("SELECT * from table_1 WHERE id = ?");
$stmt->bind_param("i", $table_2_id);
$stmt->execute();
...
這是正確的方法嗎?是否有一些更高效的查詢來執行此任務?
您可以嘗試將兩個表連接在一起,然後執行單個查詢以獲取結果。 –
你能說明一下嗎? –
嘗試類似這樣'SELECT table_2。* FROM table_1 LEFT JOIN table_2 ON table_1.table_2_id = table_2.id WHERE table_1.reg_no =?' – gdros