如果名称在“父母”或“孩子”上匹配,则选择“父母”

用户名

我想创建一个SQL查询,如果给定名称与父级名称或子级名称匹配,则返回父级行列表。因此,如果名称与父项匹配,则返回该父项。如果名称与孩子匹配,则返回该孩子的父母。父行在结果中不应出现多次。

考虑以下示例(运行一些漂亮的HTML表的代码段):

table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
  padding: 3px;
}
<h2>Parent table</h2>
<table>
  <tr>
    <th>id</th>
    <th>name</th>
  </tr>
  <tr>
    <td>1</td>
    <td>Karl</td>
  </tr>
  <tr>
    <td>2</td>
    <td>Robert</td>
  </tr>
</table>
<h2>Child table</h2>
<table>
  <tr>
    <th>id</th>
    <th>parent</th>
    <th>name</th>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>Samuel</td>
  </tr>
  <tr>
    <td>2</td>
    <td>1</td>
    <td>Karl</td>
  </tr>
  <tr>
    <td>3</td>
    <td>1</td>
    <td>Robert</td>
  </tr>
</table>
<h2>Result for Karl</h2>
<table>
  <tr>
    <th>id</th>
    <th>name</th>
  </tr>
  <tr>
    <td>1</td>
    <td>Karl</td>
  </tr>
</table>
<h2>Result for Robert</h2>
<table>
  <tr>
    <th>id</th>
    <th>name</th>
  </tr>
  <tr>
    <td>1</td>
    <td>Karl</td>
  </tr>
  <tr>
    <td>2</td>
    <td>Robert</td>
  </tr>
</table>
<h2>Result for Samuel</h2>
<table>
  <tr>
    <th>id</th>
    <th>name</th>
  </tr>
  <tr>
    <td>2</td>
    <td>Robert</td>
  </tr>
</table>

到目前为止,这是我尝试过的:

SELECT Parent.*
FROM Parent,
     Child
WHERE Parent.name = :name_parameter
   OR Child.name = :name_parameter AND Child.parent = Parent.id

但是它不起作用,结果始终为空。

波希米亚风格

尝试这个:

select distinct Parent.*
from Parent
left join Child on Child.parent = Parent.id
where Parent.name = :name_parameter
or Child.name = :name_parameter

distinct删除重复项。
left仍然返回没有孩子的父母。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择一个父母和所有给定父母或孩子ID的孩子

来自分类Dev

让孩子与父母的点击事件

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

MySQL从表中选择父母和孩子

来自分类Dev

父母对孩子的背景

来自分类Dev

显示隐形父母的孩子

来自分类Dev

jQuery动态绑定.on()选择父母还是孩子?

来自分类Dev

选择匹配的孩子父母的所有孩子表ID

来自分类Dev

Android工具栏:孩子与父母身高不匹配

来自分类Dev

jQuery根据与父母匹配的类选择器查找孩子

来自分类Dev

如果孩子空着/搬走了,Knockout.Js隐藏父母

来自分类Dev

jQuery的如何选择父母而不是孩子

来自分类Dev

将班级名称从孩子移动到父母

来自分类Dev

如何从孩子向父母的父母发送数据

来自分类Dev

隐藏父母,如果父母缺少特定班级,则显示孩子

来自分类Dev

我怎样才能使孩子的div匹配父母的身高?

来自分类Dev

父母/孩子组合框

来自分类Dev

选择一个父母和所有给定父母或孩子ID的孩子

来自分类Dev

父母对孩子的背景

来自分类Dev

如果隐藏了孩子,如何隐藏父母?

来自分类Dev

Android工具栏:孩子与父母身高不匹配

来自分类Dev

让孩子修改其父母

来自分类Dev

jQuery的如何选择父母而不是孩子

来自分类Dev

固定父母身后的孩子

来自分类Dev

休眠检索父母/孩子

来自分类Dev

将孩子抛弃给父母

来自分类Dev

如何选择父母的孩子的号码?

来自分类Dev

匹配每个父母中孩子的身高

来自分类Dev

相对父母,绝对孩子