0

在搜索了很长时间之后,我还没有找到一个查询来实现这一点。

我有一个带有“listing_id”字段和“user_id”字段的“offers”表,我需要获取所有listing_id 的所有记录,其中至少一条记录与给定的user_id 匹配。

换句话说,我需要一个查询来确定给定用户参与的listing_id,然后返回这些listing_id 的所有offer 记录,而不管user_id 是什么。

最后一部分是问题所在。当我只提供一个用户的 ID 而没有列表 ID 时,它会返回所有其他用户的报价记录

我正在考虑首先在单独的查询中确定listing_ids,然后使用php循环为第二个查询创建一个WHERE子句,该子句由一堆“listing_id = $var ||”组成 但后来我无法让自己去做,因为我认为一定有更好的方法。

希望这很容易,它逃脱我的唯一原因是因为我已经抬起头来了。很高兴能在我身后得到这个。

感谢您抽出宝贵的时间。

乔什

4

2 回答 2

0

如果我了解您应该在listingid匹配和userid =给定时加入自己的报价

select * from offers AS t1
inner join offers AS t2 on t1.listingid = t2.listingid and t1.userid = 1;
于 2013-08-23T22:25:26.510 回答
0

您可以在 MySQL 端执行两个查询,如下所示:

SELECT * FROM offers WHERE listing_id IN (SELECT listing_id FROM offers WHERE user_id = 1)
于 2013-08-23T22:05:12.903 回答