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

用户名

我想创建一个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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

MySQL从表中选择父母和孩子

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

显示隐形父母的孩子

来自分类Dev

让孩子与父母的点击事件

来自分类Dev

父母对孩子的背景

来自分类Dev

父母/孩子组合框

来自分类Dev

父母对孩子的背景

来自分类Dev

让孩子修改其父母

来自分类Dev

固定父母身后的孩子

来自分类Dev

休眠检索父母/孩子

来自分类Dev

将孩子抛弃给父母

来自分类Dev

相对父母,绝对孩子

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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