Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Sql 当所选变量不存在时,如何显示空值而不是删除整行_Sql_Left Join - Fatal编程技术网

Sql 当所选变量不存在时,如何显示空值而不是删除整行

Sql 当所选变量不存在时,如何显示空值而不是删除整行,sql,left-join,Sql,Left Join,我正在尝试使用第三个链接链接同一数据库中的两个表 第一个表是product,包含productcode。第二个表是shop,有shopcode。 第三个表包含shopcode和相应的productcode 然而,并不是所有的产品都售出,现在它只是在结果中删除这些产品 这将列表从1600缩减到753,但是我想看到产品和商店的列表是次要问题 因此,我不想删除整行,而是希望表中的区域保持灰色或声明为空,表示没有商店出售它 我用过: SELECT * FROM product, sells WHERE

我正在尝试使用第三个链接链接同一数据库中的两个表

第一个表是product,包含productcode。第二个表是shop,有shopcode。 第三个表包含shopcode和相应的productcode

然而,并不是所有的产品都售出,现在它只是在结果中删除这些产品

这将列表从1600缩减到753,但是我想看到产品和商店的列表是次要问题

因此,我不想删除整行,而是希望表中的区域保持灰色或声明为空,表示没有商店出售它

我用过:

SELECT * FROM product, sells
WHERE product.productcode = sells.shopcode 
ORDER BY product.productcode.
我试着用谷歌和我的几个朋友找到它,但我似乎找不到答案

谢谢大家,, 果冻

编辑:在Tamago的帮助下,我已经将所有内容都放在了正确的表中。但是,在firefox上,另一个问题是,当没有值而不是离开表的边框时,它会留下一个空白,这使它看起来好像缺少了部分。另外,我在第一列中放置了productID,但是它似乎只在销售中显示productID,否则它也会留下一个空白

守则:

$sql = 'SELECT * FROM bier LEFT JOIN schenkt ON bier.biercode = schenkt.biercode LEFT JOIN kroeg ON schenkt.kroegcode = kroeg.kroegcode'; $resultaat = $db->query($sql); echo '<table border = 0>'; echo "<tr> <td style = 'width:100%;'>"; echo '<table border = 1>'; foreach($resultaat as $row) { echo '<tr>'; $nummer = $row['bier.biercode']; echo '<td>'.$row['bier.biercode'].'</td>'; echo '<td>'.$row['naam'].'</td>'; echo '<td>'.$row['type'].'</td>'; echo '<td>'.$row['stijl'].'</td>'; echo '<td>'.$row['alcohol'].'</td>'; echo '<td>'.$row['kroegnaam'].'</td>'; echo '<td>'.$row['adres'].'</td>'; echo '<td>'.$row['plaats'].'</td>';
可能值得注意的是,t1=啤酒或啤酒(英语)t2=申克或销售,t3=克朗或酒吧


免责声明,我不是酒鬼,但我想我的老师可能是

问:我不认为你的意思是删除——你只是在做一个选择查询。对的建议:也许你要找的是一个?太好了@user1459622-这就是我的意思。我假设t1是产品,t2是销售,但什么是mybridgetable?编辑:一个叫做google的漂亮东西告诉我在发布之前要想一想,t1=product t2=shop t3/bridgetable=sellst1是产品的别名,t3是商店的别名。t2,您在OP中没有给出它的名称,但您将其描述为“…具有店铺代码和相应的产品代码”。它被称为“桥接表”,因为它将两个主表产品和商店连接在一起。@Tamago,你是我的救世主:D明天就要到了,这是我必须克服的最大障碍别笑这是我在高中学习PHP的第一个月Paulsm4也非常感谢:P.s.更新了OP,让读者能更多地使用它。哦,太棒了@Jell0zz!我认为地狱里有一个特别的戒指,是为别人做家庭作业的人戴的。看看你做了什么!!!不,说真的-像你想的那样学习-这对你没有帮助,得到这样的答案。下次把你的帖子贴上家庭作业的标签,人们可以引导你找到答案,而不是像我那样脱口而出。
SELECT * FROM Products t1

LEFT JOIN myBridgeTable t2
ON t1.ProductID = t2.ProductID

LEFT JOIN Shops t3
ON t2.ShopID = t3.ShopID