나는이 두 테이블, 두 테이블에서 데이터를 가져 오려면 가장 좋은 방법은 무엇입니까?
agent(id, name, password, ..., shop_id);
shop(id, name, address, ...);
지금은 에이전트의 가게 이름을 인출하려면 어떻게해야합니까
? 나는 두 시퀀스 SQL 쿼리,<?php
$qstr = <<<SQL
SELECT * FROM agent WHERE id=$id;
SQL;
$result = $conn->query($qstr);
$row = $result->fetch_assoc();
foreach ($row as $key => $value)
$$key = $value;
$qstr = <<<SQL
SELECT name FROM shop WHERE id=$shop_id;
SQL;
$result = $conn->query($qstr);
$row = $result->fetch_assoc();
$shop_name = $row['name'];
?>
아니면이 선택에 대한 뷰를 생성한다
CREATE VIEW f_agent AS SELECT agent.id AS id ,agent.name AS name, shop.id AS shop_id, shop.name AS shop_name FROM agent, shop WHERE agent.shop_id=shop.id;
아니면 그냥 SQL을 사용한다
SELECT agent.id AS id ,agent.name AS name, shop.id AS shop_id, shop.name AS shop_name FROM agent, shop WHERE agent.shop_id=shop.id and agent.id=$id;
은 무엇의를 사용해야 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
감사합니다.
그래서 가입 쿼리가 시퀀스 쿼리보다 빠릅니까? – Jichao
DBMS가 테이블이 어떻게 관련되어 있는지 정확하게 파악하여 더 잘 최적화 할 수 있으므로 예측 가능한 쿼리를 얻을 수 있습니다. 때때로, 더 빠르지는 않지만 가독성을 높이기위한 좋은 방법이기도합니다. – RichardTheKiwi