[英]what is better to use php query set or mysql function?
如果表1中有數據,則需要使用該數據為表1中返回的每一行返回表2中的數據。在PHP中使用一組查詢(其中一個查詢包含在另一個的while循環中或使用SQL)會更有效查詢內的功能?
例如:
$qry = mysql_query(SELECT date FROM table1)
while($res = mysql_fetch_array($qry))
{
$qry = mysql_query("SELECT name FROM table2 WHERE date=$res['date']")
}
或將此操作作為從查詢中的table1返回ID的函數來執行。
(向左/向右)加入?
除非我誤解了這個問題...
我認為您正在尋找JOIN
sql語法。 如果您有2個表:消息和作者,並且您想返回包含作者的消息。 然后,您可以編寫以下SQL語句:
SELECT m.body, a.name FROM message m
LEFT JOIN author a ON (a.id=m.author_id)
這將返回帶有相應作者姓名的消息正文
表作者:
表消息:
UPD1:
這樣可以更快地循環每個消息並選擇作者。 因為JOIN
允許您在單個查詢中返回所有數據(使用for
循環時不返回N x個查詢)。
UPD2:
使用表查詢將如下所示:
SELECT t1.date, t2.name FROM table1 t1 LEFT JOIN table2 t2 ON (t2.date=t1.date)
這取決於在while循環中還是在查詢本身中更容易找到數據。
因此,如果數據庫必須將子查詢基於主查詢中每一行的結果,並且主查詢中總共有1000行,並且有100個結果,則它必須檢查所有行100次,因此為100,000它運行的子查詢。
因此認為它是主要查詢結果的數量。 如果while循環必須查詢數據庫100次,而DB在一次查詢中可以更快,更高效地完成查詢,那更好。 但是,如果您想要答案的子集,可以說“僅基於最后一組結果進行查詢”,則while循環會更好。
有什么更有效的使用
PHP中的一組查詢,一個查詢嵌入另一個的while循環中
要么
查詢中的SQL函數
看來您自己回答了問題,不是嗎?
您發送到dbms的每個查詢都必須通過網絡發送,解析,分析然后執行。 您可能希望最大程度地減少發送到數據庫的查詢數量。
可能會有例外,例如,如果數據處理需要dbms無法執行的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.