Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 从两个表中获取数据的MySQL查询_Php_Mysql - Fatal编程技术网

Php 从两个表中获取数据的MySQL查询

Php 从两个表中获取数据的MySQL查询,php,mysql,Php,Mysql,我有两个表,Post和Cart,当用户在Post表中添加一个项目时,Post id、Post name和添加该项目的用户名将添加到Cart表中。我想做的是,当用户登录时,他们的用户名与Cart表中的用户名匹配,检索帖子id并将帖子id与帖子表中的id进行比较,这样我就可以检索整个帖子,下面是我的表的示意图 Cart_item table | item_id | post_id | username | |:-----------|---------

我有两个表,Post和Cart,当用户在Post表中添加一个项目时,Post id、Post name和添加该项目的用户名将添加到Cart表中。我想做的是,当用户登录时,他们的用户名与Cart表中的用户名匹配,检索帖子id并将帖子id与帖子表中的id进行比较,这样我就可以检索整个帖子,下面是我的表的示意图

             Cart_item table
| item_id    | post_id     | username     |
|:-----------|------------:|:------------:|
| 1          |        127  |     Chrome    


    Post Table
| post_id | make | price|seller|
|:--------|------|-----:|:----:|
| 127    |BMW   |$12000| Joan    

查询应首先在购物车表中查找用户,当找到该用户时,应获取其所有购物车项目,即其“post_ID”,并将post_ID与其在post表中对应的ID匹配,如果找到,则应检索帖子并显示用户。我怎样才能解决这个问题?有人能帮我吗?我将不胜感激。

您需要做的是在
Cast\u item
表中检索
Chrome
(或您正在寻找的用户)作为
username
的记录,然后使用
Post\u id
键将此表连接到
Post

select post_table.* from post_table
left join cart_item on cart_item.post_id=post_table.post_id
where cart_item.username="Chrome";
select username, post.* 
from Cart_item
inner join Post on Cart_item.post_id=Post.post_id
where username="Chrome";

在post_table上使用联接,
。post_id=cart_item。post_id
假定post table中的这个实际上是
127
这个
作为一个id不是很有用。我刚刚编辑了它,我知道我应该使用联接,但情况如何,我想不出一个查询会首先将用户名与购物车表中的用户名进行比较(如果找到),然后获取帖子id并将其与帖子表中的用户名进行比较,如果找到,然后检索整个帖子,如果有人帮助我,我将不胜感激。下面的答案不起作用?我发表评论时它不存在,它起作用:DAvoid使用“*”,您可能会带来不必要的数据。@Bhawin此查询的工作方式如何?对不起,我更喜欢学习,这样下次遇到这种问题时,我会知道自己的出路,而不是再次寻求帮助。是的,你可以使用post_table.make、post_table.price等,答案是提出一个观点,以便你得到解决方案,我们在stackoverflow上没有填鸭式的输入。@user3105682查询是mysql中的一个简单的左连接,它只匹配用户名并从cart\u item表中获取thpost id,然后在post\u表中搜索该id,如果exists@Bhawin谢谢你,你刚刚把我从2小时的痛苦中救了出来