我有一个MySQL连接查询效果很好(免责声明:从教程中获得):忽略在MySQL空结果JOIN查询
<?php
$connection = mysql_connect("localhost", "root", "test") or die("Error connecting to database");
mysql_select_db("products90", $connection);
$result = mysql_query("SELECT * FROM buyers LEFT JOIN products USING (id);", $connection) or die("error querying database");
$i = 0;
while($result_ar = mysql_fetch_assoc($result)){
?>
<table>
<tr <?php if($i%2 == 1){ echo "class='body2'"; }else{echo "class='body1'";}?>>
<td>
<?php echo $result_ar['buyer_name']; ?></td>
<td>
<?php echo $result_ar['manufacturer']; ?>
</td>
<td>
<?php echo $result_ar['product_name']; ?>
</td>
</tr>
</table>
<?php
$i+=1;
}
?>
然而,如果我想它忽略NULL结果,我需要怎样处理JOIN,哪种类型是合适的?
我看了一下Google,但不确定从哪里开始。
谢谢,但如果我有两个值 - products.id和product_name列 - 我只是得到“错误查询数据库”消息。 – avenas8808
好吧,您应该只在必要时执行LEFT JOIN,因为查询优化器无法优化它们(顺序对于LEFT JOIN很重要)。所以你应该用第二个查询 – wonk0
@ avenas8808来代替使用'或die(mysql_error())',它会输出准确的错误。 –