这是查询
SELECT
members.memberID,
members.salutation,
members.firstName,
members.middleName,
members.lastName,
members.suffix,
members.company,
addresses.address1,
addresses.address2,
addresses.city,
addresses.state,
addresses.postalCode,
addresses.country,
addresses.memberID,
email.email,
email.memberID,
phonenumbers.phoneNumber,
phonenumbers.memberId,
subscriptions.year,
subscriptions.memberID
FROM
members,
addresses,
email,
phonenumbers,
subscriptions
WHERE
subscriptions.year = '%s'
AND
subscriptions.memberID = members.memberID
AND
subscriptions.memberID = addresses.memberID
AND
subscriptions.memberID = email.memberID
AND
subscriptions.memberID = phonenumbers.memberID
ORDER BY
members.lastName,
members.firstName,
members.company
LIMIT 0, 10
我的问题是它是一个巨大的查询,所以我试图将它限制为一次这么多…它应该有超过5000个结果…无论如何,唯一有效的限制是限制0,10,如果你做任何其他5, 10它不起作用0,50不起作用……只有0,10个作品……
当我执行0,10时,查询返回blake firstName,middleName,lastName和其他一些……当我在$result上执行print_r()时,它也显示为空白,并且在数据库,也没有错别字…
最佳答案 根据您的成员平均有多少电子邮件地址和电话号码,您的查询可能存在问题.假设您有记录(为简洁起见省略了大多数字段):
members addresses phoneNumbers
memberId | firstName | lastName memberId | city memberId | phoneNumber
--------------------------------- ------------------- ----------------------
839 | Joe | Hallenbeck 839 | New York 839 | 111-11111
839 | L.A. 839 | 222-22222
那么你的加入将会为Joe Hallenbeck创造一个记录,但是四个:
memberId | firstName | lastName | city | phoneNumber
-----------------------------------------------------------
839 | Joe | Hallenbeck | New York | 111-1111
839 | Joe | Hallenbeck | New York | 222-2222
839 | Joe | Hallenbeck | L.A. | 111-1111
839 | Joe | Hallenbeck | L.A. | 222-2222
我不知道这是否是你想要的,但你应该知道这个查询可能会产生比数据库中的成员多得多的结果记录.
如Konerak所指出的,您应该发布一些DDL语句(创建表等)以获得更多建议.