我会编造数据来说明我的问题:我有 2 张表,一张叫clients
,一张叫shippingProfiles
。
clients shippingProfiles
************************************* *********************************
* clientId username emailAddress * * clientId street town *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 1 james jdoer@aol.org * * 1 mole north *
* 2 zac zmit@aol.org * * 1 maple pleasant *
* 3 cris cm@yahoo.org * * 3 oak brook *
* 4 john jg@yahoo.org * * 3 taylor glen *
************************************* *********************************
clients.clientId
是唯一的主键。有些客户有多个运输资料,有些则没有。
我想在数据库中搜索用户名、电子邮件地址、街道或城镇中包含字母“m”的任何客户。我希望每个唯一的客户都作为一个条目(并且只有一个条目)返回,显示他们的 ID、用户名、电子邮件地址、街道和城镇。如果他们没有街道和城镇,它可以显示null
(或类似的东西),如果他们有多个街道和城镇,它可以显示其中任何一个。
这应该是结果:
*********************************************************
* clientId username emailAddress street town *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 1 james jdoer@aol.org mole north *
* 2 zac zmit@aol.org null null *
* 3 cris cm@yahoo.org oak brook *
*********************************************************
这些表最终可能每个都包含 50,000 个条目,因此我需要数据库在尽可能少的扫描中执行此操作。
我听说 mysql 实际上非常强大,所以我假设这可以通过一个命令来完成。