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子查询检查_Mysql_Subquery - Fatal编程技术网

MySQL子查询检查

MySQL子查询检查,mysql,subquery,Mysql,Subquery,我有个问题。 这是我的疑问: SELECT branches.naam as branche_naam, subbranches.naam as subbranche_naam, specialiteiten.naam as specialiteiten_naam FROM bedrijfgegevens INNER JOIN subbranches on subbranches.id = company.subbranche_id INNER JOIN branches o

我有个问题。 这是我的疑问:

SELECT 
  branches.naam as branche_naam, 
  subbranches.naam as subbranche_naam, 
  specialiteiten.naam as specialiteiten_naam
FROM bedrijfgegevens
INNER JOIN subbranches on subbranches.id = company.subbranche_id 
INNER JOIN branches on branches.id = subbranches.branche_id 
INNER JOIN bedrijfgegevens_specialiteiten on bedrijfgegevens_specialiteiten.bedrijfgegevens_id = bedrijfgegevens.id 
INNER JOIN specialiteiten on specialiteiten.id = bedrijfgegevens_specialiteiten.specialiteiten_id 
WHERE bedrijfgegevens.id in 
  (SELECT 
    bedrijfgegevens.id FROM bedrijfgegevens 
  INNER JOIN subbranches on subbranches.id = bedrijfgegevens.subbranche_id     
  INNER JOIN branches on branches.id = subbranches.branche_id 
  INNER JOIN bedrijfgegevens_specialiteiten on bedrijfgegevens_specialiteiten.bedrijfgegevens_id = bedrijfgegevens.id 
  INNER JOIN specialiteiten on specialiteiten.id = bedrijfgegevens_specialiteiten.specialiteiten_id 
  WHERE branches.naam = "test" 
  AND subbranches.naam = "demo" 
  AND specialiteiten.naam = "bla")
我认为这是一个很长的路,我使用相同的表。 它所做的是: 子查询:获取公司id,其中specialiten.naam=bla。
查询:从bedrijf获取另一个specialiten一种方法是使用视图

如果希望值位于单个分隔列表中,可以使用group_concat:

SELECT bedrijfgegevens.id,
       GROUP_CONCAT(CONCAT_WS(':', branches.naam, subbranches.naam, specialiteiten.naam))
FROM bedrijfgegevens INNER JOIN
     subbranches
     on subbranches.id = company.subbranche_id INNER JOIN
     branches
     on branches.id = subbranches.branche_id INNER JOIN
     bedrijfgegevens_specialiteiten
     on bedrijfgegevens_specialiteiten.bedrijfgegevens_id = bedrijfgegevens.id INNER JOIN
     specialiteiten
     on specialiteiten.id = bedrijfgegevens_specialiteiten.specialiteiten_id 
GROUP BY bedrijfgegevens.id
HAVING SUM(branches.naam = 'test' AND subbranches.naam = 'demo' AND specialiteiten.naam = 'bla') > 0;