[英]Better way to write these 2 SQL queries?
它獲取URL的名稱,找到ID,然后使用它來查找與此ID相關的產品。
有沒有更好的書寫方式? 說好一點是指性能。 我不知道兩個查詢是否可以合並以獲得更好的性能。
$cname = mysql_real_escape_string($_GET["c"]);
$row = mysql_fetch_assoc(mysql_query("SELECT id FROM companies WHERE name = '$cname' LIMIT 1"));
$cID = $row['id'];
$products = mysql_query("SELECT name FROM products WHERE company_id = '$cID' " );
while($product = mysql_fetch_assoc($products)) {
echo $product['name'].'<br>';
}
SELECT c.id, p.name
FROM companies c
INNER JOIN products p ON p.company_id = c.id
WHERE c.name = '$cname'
只需使用簡單的聯接:
SELECT p.name FROM products p, companies c
WHERE c.id = p.company_id
AND c.name = '<COMPANY NAME>';
只要公司名稱唯一,就不會遇到任何問題。
為了安全起見,您可以(應該)考慮參數化查詢。 查看這些結果
當然,您可以將它們合並為一個:
SELECT products.name
FROM products
JOIN companies
ON products.company_id = companies.id
WHERE companies.name = '$cname'
但是,這在第一個查詢中丟失了LIMIT-您是否希望達到這個極限?
你可以這樣做:
SELECT p.name FROM products p JOIN companies c ON (p.company_id = c.id) WHERE c.name = '$cname'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.