【发布时间】:2013-12-02 06:16:42
【问题描述】:
我有一个名为 phpbb_pcp_market 的表,其中包含以下行:http://pastebin.com/ZAFjawD8(显然还有更多)
我还有另一个名为 phpbb_pcp_market_cart 的表,如下所示:
+----+---------+-----------+------------+
| id | item_id | player_id | time |
+----+---------+-----------+------------+
| 14 | 49 | 3 | 1384806292 |
+----+---------+-----------+------------+
我需要根据item_id 加入这两个表,但由于某种原因它不起作用。
这是我使用的查询:
SELECT m.*, c.* FROM (phpbb_pcp_market_cart c)
LEFT JOIN phpbb_pcp_market m
ON (c.item_id = m.item_id)
WHERE c.player_id = 3
ORDER BY c.time
由于某种原因,它什么也没返回。
我不知道我在查询中做错了什么。不,我不擅长 SQL。
【问题讨论】:
-
根据您描述的数据,您的查询应该至少返回一行。您能否澄清“不返回任何内容”的含义以及您使用什么工具进行查询?
-
什么都不返回我的意思是它返回 0 行。我正在使用 PHP 来执行该查询。
-
我没看错。这个查询应该至少返回一行(如果你有一行
phpbb_pcp_market_cart.player_id = 3,就像你说的那样。那么问题出在PHP代码上。 -
您确定购物车表中有一个 player_id = 3 吗?尝试删除 WHERE 子句,看看它是否返回任何行。然后尝试
select * from phpbb_pcp_market_cart where player_id = 3并查看是否返回任何具有正确 item_id 的行。数据(或您对它的理解)有问题,而不是查询。 -
你的错误是什么,只是出于知识的原因?
标签: mysql sql select join left-join