2013-11-25 113 views
1

我有3个表及其列。SQL如何在这种特定情况下选择数据

'players': id 

'items': player_id,item_id,quantity 

'item_list': id,price 

我要选择列表中的所有项目的运动员有:

("select * from items where player_id=$player_id") 

,同时显示的项目数据形式“的MULTILINE_ACL_COMPONENT”表。输出应该是这样的

嗨,我有ID $player_id。这里是我的项目

item_id1价格1多少:$数量1

item_id2 price2多少:$ quanity2

如何做到这一点?我不想每个查询我的基地(while $row=mysqli_fetch_array($result))。那太重了。我想要做1或2个查询(union?outer join?inner join?我不知道,我在问),并且他们显示数据。任何人都知道如何做到这一点?

回答

0

您需要使用group by子句进行连接。

select i.item_id, il.price, i.quantity 
from items i, items_list il 
where i.player_id=$player_id 
and i.item_id = il.item_id 
group by i.item_id 
+0

我把项目,而不是我和item_list而不是il? – user3033026

+0

没有。我很好。谢谢 – user3033026

+0

eeehh我如何显示数据?请帮忙 – user3033026

0

如果我理解正确的话,我认为你可以做到这一点与JOIN:

SELECT il.id AS ItemID ,il.price AS ItemPrice,i.quantity AS ItemQtY 
FROM items i 
INNER JOIN item_list il ON i.item_id = il.id 
WHERE player_id = $player_id 

这给你从item_list表从项目表中的数量以及价格信息。

+0

以及如何与 而($行= mysqli_fetch_array($结果)) 回波$行[ '表名']显示它们; 我把'table_name'代替了吗? – user3033026

+0

我不是很流利的PHP,但我认为它应该是'echo $ row ['columnName']''。我编辑了我的答案,以提供更有意义的别名。使用ItemId,ItemPrice和ItemQty –

+0

@ user3033026。你能使它工作吗?在这种情况下,我无法看到为什么你需要一个组的原因。任何你忘记提及的理由? –