2015-11-20 69 views
-3

第一個表兩個表中獲取數據:產品無法從使用連接

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 

我該如何實現這一目標。

+2

我們的任何人都可以給你這個答案在一眨眼的功夫,但那不是什麼SO是爲了。我們幫助您糾正錯誤。告訴我們你做錯了什麼。 – KrazzyNefarious

回答

1

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

+0

如果我只想從購買表中選擇列或沒有列,那麼我需要做的變化。 – user3653474

+0

在'SELECT'中指定所需的任何列,如'SELECT Product.id,buy.userid,buy.Product_id,....' –

2

使用JOINwhere

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

不應該是'SELECT * FROM Product' ** AS **'p加入購買** ** AS **'b ON p.id = b.product_id WHERE b.userid ='3''? – Lino

+0

@lino在大多數DBMS中,您使用'AS'指定列別名,不使用表別名。我相信這是有原因的。 –

+0

@DarwinvonCorax好吧,不知道:) – Lino

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

首先在產品表xyz是你必須使用唯一的名稱爲您的產品更好地理解時間。

現在產品表中的id是您的產品ID。檢查你的購買表productid沒有產品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

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