如何使用mysql中的连接从一个表中选择一行,从其他表中选择多个行,

时间:2017-05-05 09:34:05

标签: php mysql

我搜索谷歌,一切都是使用连接解释但我不需要第一个表的重复数据,我想从第一个表单行。

考虑表a有两列id和名称

id | name

1  | jhon

2  | rock

和表b有两个列id,它是外键引用表a的id和place

id | nickname

1  | steve

1  | smith

2  | kiran

我想把它作为

id | name | nickname

1  | jhon | steve

          | smith

1 个答案:

答案 0 :(得分:1)

您可以使用简单的内部SELECT ta.id, ta.name, tb.nicname FROM tablea ta JOIN tableb tb ON ta.id = tb.id; 来执行此操作,例如:

GROUP_CONCAT

这将导致一个用户的多个记录,只能获得一个记录,您可以使用SELECT ta.id, ta.name, GROUP_CONCAT(tb.nicname) FROM tablea ta JOIN tableb tb ON ta.id = tb.id GROUP BY ta.id, ta.name; ,例如:

IF

<强>更新

要获得预期的输出,您可以在查询中定义变量并使用SELECT IF(@previous = ta.id, '', ta.id) as id, IF(@previous = ta.id, '', ta.name) as name, tb.nickname, @previous := ta.id FROM table1 ta JOIN table2 tb ON ta.id = tb.id, (SELECT @previous := '') a ; 返回值,例如:

<div *ngIf="currentStatus !== 'open' || currentStatus !== 'reopen' ">

    <p padding text-center class="text-notification">{{message}}</p>

</div>

这将返回一个额外的列,但您可以在解析结果时忽略它。