【发布时间】:2011-02-03 18:40:54
【问题描述】:
电话桌
+----------------+--------------+ |领域 |类型 | +----------------+--------------+ | f_id |整数(15) | | f_client_id |整数(11) | | f_phone_type | varchar(50) | | f_phone_number | varchar(13) | +----------------+--------------+客户表
+-----------------+--------------+---- --+-----+ |领域 |类型 |空 |钥匙 | +-----------------+--------------+---- --+-----+ | f_id |整数(15) |否 |优先级 | | f_first_name | varchar(13) |是 |穆尔 | | f_mi |字符(1) |是 | | | f_last_name | varchar(20) |否 |穆尔 | +------------------+--------------+---- --+-----+假设:
- “电话表”中的每条记录都属于“客户表”中的一条记录。
- “客户表”中的每条记录在“电话表”中可以有 0 条或多条记录。
- 简单翻译:一个客户可以有 0 个或多个电话号码
使用标准的 LEFT 或 INNER 连接,我会得到这样的结果:
+------------+------------+--------------+ |姓名 |电话类型 |电话号码 | +------------+------------+--------------+ |约翰·史密斯 |主页 | 712-555-6987 | |约翰·史密斯 |工作 | 712-555-1236 | +------------+------------+--------------+我需要一个查询,它可以为我提供属于给定客户的工作和家庭电话号码:
+------------+----------------+--------------+ |姓名 |工号 |家庭号码 | +------------+----------------+--------------+ |约翰·史密斯 | 712-555-1236 | 712-555-6987 | +------------+----------------+--------------+是否可以进行 LEFT 或 INNER 连接,然后将这些结果合并到一行中?我见过类似的问题,但给出的例子比我所追求的要复杂得多:
类似问题
- MySQL Need help constructing query: join multiple tables into single row
- SQL left join with multiple rows into one row
谢谢
【问题讨论】:
标签: mysql left-join inner-join