我的表有2个字段userId和ebayitemId。以下是数据库中的表格:
userId | ebayitemId
12 | 1
12 | 2
12 | 3
12 | 4
在我的情况下,客户端向ebayitemId
发出请求以查看此用户列出的其他项目。(ebayitemId
是唯一的)。到目前为止,我使用两个查询来选择用户列出的所有项目。第一个查询是
SELECT userId WHERE ebayitemId = '1'
这个查询让我获得EBAYITEMID的USERID。
第二个查询是
SELECT ebayitemId WHERE userId = '$userid'
这给了我ebayitemId 1,2,3和4。
我的问题:有没有办法将这两个查询合并为一个查询以获得上述结果,因为只涉及一个表?
答案 0 :(得分:0)
可以用
完成SELECT ebayitemId from table WHERE userId in (SELECT userId from table WHERE ebayitemId = '1')
答案 1 :(得分:0)
天真:
SELECT ebayitemId
FROM yourtable
WHERE userId IN (
SELECT userId
FROM yourtable
WHERE ebayitemId = '1'
)
请注意,还有其他方法可以使用连接等对此猫进行换肤。
答案 2 :(得分:0)
查询:
SELECT iu.ebayitemId
FROM t_items AS iu
INNER JOIN t_items AS ii ON (iu.userId=ii.userId)
WHERE (ii.ebayitemId= $item )
如果您不想选择第一个项目:
SELECT iu.ebayitemId
FROM t_items AS iu
INNER JOIN t_items AS ii ON (iu.userId=ii.userId)
WHERE (ii.ebayitemId= $item )
AND (iu.ebayitemId<>ii.ebayitemId)
注意:IN语句的优化程度会降低。