[英]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.