结果是 *我的问题是,这个选择逻辑是什么。*如果您开始获取 family 表位置并在 food table 中搜索-6ren">
gpt4 book ai didi

php - 此连接语句如何产生此结果

转载 作者:行者123 更新时间:2023-11-30 23:29:38 24 4
gpt4 key购买 nike

您好,我正在学习 MySQL 连接。从教程中我得到了两个表。

enter image description here

查询是

<?php
// Make a MySQL Connection
// Construct our join query
$query = "SELECT family.Position, food.Meal ".
"FROM family, food ".
"WHERE family.Position = food.Position";

$result = mysql_query($query) or die(mysql_error());


// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
echo $row['Position']. " - ". $row['Meal'];
echo "<br />";
}
?>

结果是

enter image description here

*我的问题是,这个选择逻辑是什么。*如果您开始获取 family 表位置并在 food table 中搜索它,我认为结果应该是

Dad|steak
Dad|Tacos
Mom|Salad

但结果不同。搜索的工作方式和结果集的组织方式。请帮助我理解它是如何工作的,提前谢谢你......

最佳答案

我会重写这个查询:

SELECT
family.Position, food.Meal
FROM
family
JOIN food USING (Position)

您可以将 WHERE 子句用于 JOIN 条件——MySQL 将以任何一种方式对其进行优化,但通常语法使用 ON/USING 用于 JOIN 条件是首选。您也可以在此处使用 NATURAL JOIN,但这可能不安全。

至于您的具体问题,我不知道为什么 MySQL 会以这种或那种方式排序。我唯一可以告诉您的是,如果您不指定 ORDER BY 子句,则不应依赖于结果的顺序。您应该将订单视为随机的。它似乎是按 Meal 而不是 Position 来点餐。我不知道为什么会这样,但即使是 that 也可能不可靠。当顺序重要时,使用 ORDER BY

关于php - 此连接语句如何产生此结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11395014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com