0

我对 php 和 MySql 很陌生,需要一些帮助。

我有两个表 1) 包含三列的愿望清单 - emailId、itemId 和 alert

2) 包含几列的 ItemList - itemId、itemName、itemPrice、itemUrl 等。

当用户使用特定的 emailId 登录时,我需要显示他的愿望清单中的项目列表(来自 itemList)以及他的愿望清单中的“警报”列。由于两个表都不同,并且 emailId 是我将拥有的唯一输入,因此我需要找到一种最佳方法来查询它。

WishList

----------------------------------
emailId      |  itemId  | alert
----------------------------------
aj@gmail.com     01        true
bb@gmail.com     02        false
aj@gmail.com     03        false
dj@gmail.com     03        false
cj@gmail.com     03        false
aj@gmail.com     04        false

ItemList
-------------------------------------------------
itemId | itemName | itemPrice | itemUrl | ..
-------------------------------------------------
 01       abc         129         
 02       cde         99
 03       def         981
 04       efg         29
 05       fgh         200

那么,给定 emailId,我怎样才能最佳地查询与它对应的所有项目?示例:如果 emailId 是 aj@gmail.com ,则需要输出:

Output - aj@gmail.com
----------------------------------------------------------
 alert |  itemId | itemName | itemPrice | itemUrl | ..
---------------------------------------------------------
 true       01       abc         129         
 false      03       def         981
 false      04       efg         29

谢谢

编辑了问题..对此感到抱歉。

4

7 回答 7

1

尝试这个

select * from ItemList i where i.itemId=(select itemID from WishList where emailid="emailaddress")

于 2013-10-24T06:36:25.157 回答
1

您可以使用JOINor RIGHT JOINorLEFT JOIN方法。
尝试这个 :

SELECT WL.emailId, WL.itemId, IL.itemName, IL.itemPrice 
FROM WishList WL
LEFT JOIN ItemList IL
on WL.ItemId = IL.itemId
//filter here, you can add WHERE CLAUSE
于 2013-10-24T06:37:39.477 回答
0

您可以将左连接用于该类型的结果。

Select * 
FROM ItemList I 
Left join WatchList W On I.ItemId=W.ItemId 
where your_require_condition ;
于 2013-10-24T06:34:52.950 回答
0

尝试这个

select b.* from WishList as a join ItemList as b on a.itemId = b.itemId 
where a.emailId = 'email address' 

它将为您提供所需电子邮件 ID 的整个项目列表。

于 2013-10-24T06:34:57.260 回答
0

您可以尝试以下查询。

select *
from wishlist w,itemlist i
where w.itemid=i.itemid
and i.emailid="emailaddress"
于 2013-10-24T06:36:36.953 回答
0

使用左连接

Select I.* from ItemList I Left join WishList W 
    on I.itemId = W.itemId where W.emailId = "<email_address>"
于 2013-10-24T06:41:54.830 回答
0

尝试这个

select * from WishList join ItemList ON WishList.itemId = ItemList.itemId 
where emailId = "emailaddress"  
于 2013-10-24T06:32:45.650 回答