繁体   English   中英

无法使用连接从两个表中获取数据

[英]Cannot get data from two tables using join

第一个表:产品

id | Name | Price | Discount
-------------------------------
1    xyz     200
2    xyz     250
3    yz      100     50

第二张表:买

id  | userid  |  Product_id  Card_details  
------------------------------------------
1       1           1          55555   
2       1           2          88888      
3       3           1          77777    

现在我的 php 变量中有 $user_id 。 如果用户 id 是 3 我想要以下输出:

id   Name   Price   Discount     user_id    Product_id   Card_details

3     yz     100      50            3           1           77777

我怎样才能做到这一点。

使用JOINwhere

 SELECT * FROM Product p JOIN buy b 
 ON p.id = b.Product_id 
 WHERE b.userid ='3'

SELECT * FROM Product JOIN buy ON Product.id = buy.id WHERE buy.userid = $user_id ;

试试下面的查询

$query = "SELECT Product.id, Product.Name, Product.Price, Product.Discount,
buy.userid , buy.Product_id, buy.Card_details
FROM Product
JOIN buy ON Product.id = buy.Product_id
WHERE buy.userid = 3";

首先在您的产品表中 xyz 是您必须为您的产品使用唯一名称以便更好地理解的时间。

现在在产品表 id 中是您的产品 id。 检查您的 Buys 表 productid 没有产品 ID 3 的条目。当您想为用户 ID 3 购买产品 3 时,对于用户 ID 3,购买表 productid 条目应为 3。

现在检查下面的查询它肯定对你有用。

SELECT * FROM Product 
INNER JOIN buy ON Product.id = buy.Product_id
WHERE buy.userid = '3';

这意味着您希望通过用户 ID 3 购买产品。

尝试这个

DECLARE @USER_ID INT=3 --I/P of USER_ID
SELECT P.ID,
       P.NAME,
       P.PRICE,
       P.Discount,
       B.user_id,
       B.PRODUCT_ID,
       B.CARD_DETAILS
FROM   #PRODUCT P
       JOIN #BUY B
         ON P.ID = B.ID
WHERE  B.USER_ID = @USER_ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM