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

时间:2015-11-20 06:22:57

标签: php mysql sql sql-server

第一张表:产品

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

我怎样才能实现这一点。

5 个答案:

答案 0 :(得分:2)

使用JOINwhere

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

答案 1 :(得分:1)

<p>Email:<input type="email" name="email1" ng-model="emailReg"> Repeat Email:<input type="email" name="email2" ng-model="emailReg2" ng-match="emailReg"></p> <span data-ng-show="myForm.emailReg2.$error.match">Emails have to match!</span> <input type="submit" id="submit" value="Submit" /> or <input type="button" ng-click="cancelUserAdd()" value ="Cancel"/> ;

答案 2 :(得分:1)

尝试以下查询

$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";

答案 3 :(得分:1)

首先在您的产品表格xyz中,您需要为产品使用唯一的名称以便更好地理解。

现在,在产品表中,id是您的产品ID。检查您的购买表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';

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

答案 4 :(得分:0)

试试这个

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