这是我的Mysql LEFT加入代码。 它显示所有值。 我只是想确认它正确显示2个表的所有值
<?php
//connect database
$con= mysql_connect("localhost","root","") or die(mysql_error());
// select database
mysql_select_db("mysql joins",$con) or die(mysql_error());
$query = "SELECT orders.o_id, persons.p_id ".
"FROM persons ".
“LEFT JOIN orders”。 $ result = mysql_query($ query)或die(mysql_error());
// print out the contents of each row
while($row = mysql_fetch_array($result)){
echo $row['o_id']. " - ". $row['p_id'];
echo "<br />";
}
?>
facebook中的一些人说错了我问他如何显示值,如果错误
IT displays --1 - 1
2 - 2 the column values.
我想知道它导致mysql连接使购物车完整。
答案 0 :(得分:1)
您的代码中没有左连接
左连接看起来像这样:
$query = "SELECT orders.o_id, persons.p_id FROM orders left join persons on orders.o_id = persons.p_id ";
答案 1 :(得分:0)
您的加入条件为orders.o_id = persons.p_id
,但不知道数据模型这只是猜测,但我认为o_id是订单的唯一ID,而p_id是个人的唯一ID。所以两个完全不同的东西&#34;。如果有o_id = 1
的订单以及p_id = 1
的人,您的加入会给您一个结果,此o_id和p_id相等 BUT 您比较的逻辑错误。< / p>
您可能会有一个类似orders.person_id
(或类似内容)的字段,而不是连接:
WHERE orders.person_id = persons.p_id
除此之外,你的sql语句中没有左连接。通过上述假设,左连接将是:
SELECT
orders.o_id, persons.p_id
FROM orders
left join persons on orders.person_id = persons.p_id