Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql:获取所有会议id=x且为';s的父级可用,但不可用';I don’我不在乎自己有没有空?_Sql_Mysql - Fatal编程技术网

mysql:获取所有会议id=x且为';s的父级可用,但不可用';I don’我不在乎自己有没有空?

mysql:获取所有会议id=x且为';s的父级可用,但不可用';I don’我不在乎自己有没有空?,sql,mysql,Sql,Mysql,如何选择符合以下条件的所有记录: 获取meeting_id=x的所有记录,其父项可用或没有父项,但不关心其本身是否可用 table people: id, name, address, meeting_id, available, parent_id 未经测试,请尝试。如果没有父合并,则将选择第二个参数并使用自动1 SELECT * FROM people WHERE meeting_id=x AND ( COALESCE( (SELECT available F

如何选择符合以下条件的所有记录:

获取meeting_id=x的所有记录,其父项可用或没有父项,但不关心其本身是否可用

table people:  
id, name, address, meeting_id, available, parent_id

未经测试,请尝试。如果没有父合并,则将选择第二个参数并使用自动1

SELECT * FROM people 
  WHERE 
    meeting_id=x AND 
    ( COALESCE( (SELECT available FROM people AS parent WHERE id=parent_id), 1) )

您可以使用“加入”来执行此操作:

SELECT
  child.*,
  parent.name
FROM
  people child
LEFT JOIN
  people parent on (child.parent_id = parent.id)
WHERE
  (parent.available = 1 or parent.id IS NULL) AND
  child.meeting_id = x;

有关详细信息,请参见

CREATE TABLE语句将有所帮助,而不仅仅是列列表,因为数据类型和可选性(NULL或NOT NULL)将有助于我们帮助您。我假设parent_id为nullable是的,它可以为NULL,并且您的查询可以完成此任务。谢谢,我将阅读更多关于coalescechild.available的内容,因为它本身并不关心是否可用。你的意思是说,“parent.id为NULL”不是必需的吗?啊,终于找到了。答案是固定的。我猜这个查询会比连接更快,但不是特别确定。
select * from people outt
  where meeting_id = x and
  (parent_id is null or exists (select 1 from people inn where inn.id = outt.parent_id and available = 1))