Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多表的mysql查询问题_Mysql - Fatal编程技术网

多表的mysql查询问题

多表的mysql查询问题,mysql,Mysql,因此,我所有的其他查询都运行良好。除了这个,它不会收回任何结果 $var = $pdo->prepare("SELECT id, sku, quantity, style FROM catalina_warehouse, branford_warehouse WHERE sku='$data_search'"); $var->execute(); 我看不出这里有什么问题,但是如果我删除了两个表名之间的逗号,那么它就会工作,并且只从第一个表中提取,但是如果我保留逗号,那么就不会提取任

因此,我所有的其他查询都运行良好。除了这个,它不会收回任何结果

$var = $pdo->prepare("SELECT id, sku, quantity, style FROM catalina_warehouse, branford_warehouse WHERE sku='$data_search'");
$var->execute();

我看不出这里有什么问题,但是如果我删除了两个表名之间的逗号,那么它就会工作,并且只从第一个表中提取,但是如果我保留逗号,那么就不会提取任何结果。

您需要在选择行的列上指明这些列来自哪个表


另一方面,我假设这两个仓库表具有相同的列,但它们只表示两个不同的位置。这通常不是一个好的数据库设计实践。您可能会遇到规范化问题,这可能会导致数据完整性问题和冗余。您应该有一个包含所有分类信息的products表,以及一个指示其所在仓库的列和另一个列出仓库及其所有信息的表。如果将仓库列设为外键,则引用仓库表,则为金色。这有助于数据完整性和查询设计。但是,如果我的假设是错误的,忽略这一点

两个表中是否都有
sku
?如果是这样,您需要在其前面加上tablename添加问题中的表结构。如果
branford_warehouse
中没有数据,您将不会得到任何数据,如果
sku
在两个表中都存在,您将得到一个错误(您可能会忽略此错误)。除了其中的几个字段之外,我的两个表几乎相同。这就是为什么我真的很困惑。不管我在查询中首先使用哪个表,它只会从一个表中提取数据。感谢Andrew的建议,我将继续并将该建议付诸实践。不知道您的数据库是如何工作的,您的产品可以存放在多个仓库中吗?如果是这样,那就需要另一种安排。如果您能详细说明数据库的工作原理(列出表及其列),我们可以为您提供更好的设计思路。您所说的是正确的。都在一个仓库里,我刚刚把这两种产品分开。我将所有项目合并到一个表中,现在有4列显示id、sku、数量和样式。好的,我明白你的意思了。你现在看起来身体很好。