好的,我在MySQL中有两个表。一个表包含客户信息,另一个表包含电话号码。我需要将这些表合并到一个查询中,以便从phones表中选择最多两个电话号码以及客户信息。现在我的问题是:

SELECT customers.name, phones.phone, phones2.phone
FROM customers
LEFT JOIN phones ON phones.customerid=customers.id
LEFT JOIN phones AS phones2 ON phones2.customerid=customers.id
GROUP BY customers.id;

但是,这将返回电话1和电话2的相同电话号码。基本上,我需要做的是将音素2偏移1,但我不知道如何在语法上这样做。
电话放在一张单独的桌子上,因为这是一对多的关系。
我需要这个在一个查询中,因为我将直接导出到csv。
非常感谢你的帮助。提前谢谢。

最佳答案

为了避免两次获得相同的电话号码,您可以更改以下内容:

LEFT JOIN phones AS phones2 ON phones2.customerid=customers.id

对此:
LEFT JOIN phones AS phones2 ON phones2.customerid=customers.id
AND phones2.phone <> phones.phone

09-11 09:50