Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/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
Php 我被我的SELECT sql查询卡住了_Php_Mysql - Fatal编程技术网

Php 我被我的SELECT sql查询卡住了

Php 我被我的SELECT sql查询卡住了,php,mysql,Php,Mysql,我的SELECT sql语句有问题,我还没有解决。当我使用mysql_fetch_assoc函数打印结果时,我会得到重复的行/记录。记录重复13次。我不知道为什么,据我所知,我做得很对 以下是我的sql查询: SELECT members.member_id, members.firstname, members.lastname, billing_details.Street_Address, billing_details.Mobile_No

我的SELECT sql语句有问题,我还没有解决。当我使用mysql_fetch_assoc函数打印结果时,我会得到重复的行/记录。记录重复13次。我不知道为什么,据我所知,我做得很对

以下是我的sql查询:

SELECT 
    members.member_id, 
    members.firstname, 
    members.lastname, 
    billing_details.Street_Address, 
    billing_details.Mobile_No, 
    orders_details.*, 
    food_details.*, 
    categories.*, 
    cart_details.*, 
    quantities.* 
FROM 
    members, billing_details, orders_details, categories, 
    quantities, food_details, cart_details 
WHERE 
    members.member_id=orders_details.member_id AND 
    billing_details.billing_id=orders_details.billing_id AND 
    orders_details.cart_id=cart_details.cart_id AND 
    cart_details.food_id=food_details.food_id AND 
    cart_details.quantity_id=quantities.quantity_id

如果您只希望每个成员id出现一次,则可以使用DISTINCT:

还可以使用“连接使用”避免重复干燥:

使用列列表搜索


这样,您也会注意到msising谓词,因为它就在联接表名称的旁边。

如果您只希望每个成员id出现一次,可以使用DISTINCT:

还可以使用“连接使用”避免重复干燥:

使用列列表搜索

这样,您也会注意到msising谓词,因为它就在联接表名称的旁边。

使用SELECT DISTINCT

请注意

使用mysql_*库是一种糟糕的做法。它们已弃用,应替换为mysqli_*库或PDO对象。

使用SELECT DISTINCT

请注意


使用mysql_*库是一种糟糕的做法。它们已弃用,应替换为mysqli_*libraries或PDO对象。

WHERE子句中没有类别。我猜你们有13个类别?如果您需要更好的解释,请告诉我。

您的WHERE子句中没有类别。我猜你们有13个类别?如果您需要更好的解释,请告诉我。

为什么不做如下的左连接

SELECT members.member_id, members.firstname, members.lastname, billing_details.Street_Address, billing_details.Mobile_No, orders_details.*, food_details.*, categories.*, cart_details.*, quantities.* FROM members as m

Left join billing_details as b ON b.billing_id=m.?
LEFT JOIN orders_details as o ON o.cart_id=m.?
LEFT JOIN food_details as f ON f.f_id =m.? 
LEFT JOIN cart_details as c ON c.?=?
LEFT JOIN quantitiesas q  ON q.?=?
LEFT JOIN categories as cat ON cat.?=?

为什么不做如下的左连接

SELECT members.member_id, members.firstname, members.lastname, billing_details.Street_Address, billing_details.Mobile_No, orders_details.*, food_details.*, categories.*, cart_details.*, quantities.* FROM members as m

Left join billing_details as b ON b.billing_id=m.?
LEFT JOIN orders_details as o ON o.cart_id=m.?
LEFT JOIN food_details as f ON f.f_id =m.? 
LEFT JOIN cart_details as c ON c.?=?
LEFT JOIN quantitiesas q  ON q.?=?
LEFT JOIN categories as cat ON cat.?=?

是比赛吗?可以我的演讲讲到了良好的实践,所以有!!徽章和名誉?是的,耸耸肩。声誉反映了你的回答方式。如果你愿意,这是一场比赛。我认为徽章和代表只是给你一个数字评级,你是网站的一项资产。这是一个竞争?可以我的演讲讲到了良好的实践,所以有!!徽章和名誉?是的,耸耸肩。声誉反映了你的回答方式。如果你愿意,这是一场比赛。我认为徽章和代表只是给你的网站的资产的多少一个数字评级。在查询中一个接一个地添加你的表-然后你会发现在哪个阶段有错误。在查询中一个接一个地添加你的表-然后你会发现在哪个阶段有错误。等号前的问号在哪里记录?@JanusTroelsen列名必须由用户自己添加,因为我不知道他的表中有什么列结构:记录的等号前的问号在哪里?@JanusTroelsen列名必须由用户自己添加,因为我不知道他的表中有什么列结构:@marlaw21为了避免此类错误,使用联接或对where部分进行排序,使它们的顺序与FROM中的表相同part@marlaw21要避免此类错误,请使用联接或对where部分进行排序,使它们的顺序与FROM部分中的表相同