表结构如下:
表:购买者列:id |组织|城市|状态
表:事件列:id | purchaser_id
我的查询:
SELECT purchasers.*, events.id AS event_id
FROM purchasers
INNER JOIN events ON events.purchaser_id = purchasers.id
WHERE purchasers.id = '$id'
我想做的,显然是从购买者表中按照他们的ID选择条目并从事件中加入。这很容易。我也可以轻松地通过另一个查询来获得具有相同组织,城市和州的其他购买者(有多个),但我想在同一个查询中完成所有操作。有没有办法可以做到这一点?
简而言之,按照他们的身份识别购买者,然后选择具有相同组织,城市和州的其他购买者。
感谢。
答案 0 :(得分:2)
您可以尝试类似
的内容SELECT p.*,
e.id
FROM purchasers p INNER JOIN
events e ON e.purchaser_id = p.id INNER JOIN
(
SELECT p.*
FROM purchasers p
WHERE p.id = '$id'
) Original ON p.organization = Original.organization
AND p.city = Original.city
AND p.state = Original.state
子选择原始将返回原始购买者,然后通过组织,城市和州
链接到购买者表修改强>
更改了查询,这仍将返回重复项,但仅针对每位购买者注册的事件数。如果您希望检索 DISTINCT 购买者列表,则无法使用事件ID 执行此操作,因此您需要类似
的内容SELECT p.*
FROM purchasers p INNER JOIN
(
SELECT p.*
FROM purchasers p
WHERE p.id = '$id'
) Original ON p.organization = Original.organization
AND p.city = Original.city
AND p.state = Original.state