Question: Here are some sql tables:

**table USERS**

```
id
1

```

---

**table PROJECTS**

```
id
1

```

---

**table LOCATIONS**

```
id
1
2

```

---

**table USERS\_x\_PROJECTS**

```
id      id_USER      id_PROJECT
1       1            1

```

---

**table USERS\_x\_LOCATIONS**

```
id      id_USER      id_LOCATION
1       1            1

```

---

**table PROJECTS\_x\_LOCATIONS**

```
id      id_PROJECT      id_LOCATION
1       1               1
2       1               2

```

---

Users are linked to Projects. The links between Users and Projects are stored into USERS\_x\_PROJECTS.  
Users and Projects can be linked to Locations. The links are respectively stored into USERS\_x\_LOCATIONS and PROJECTS\_x\_LOCATIONS.

**Now lets say i'm user #1. What i want to do is fetch all projects with their locations where none of the projects's location is matching one of mine.**

**Expected result:**
With the example above, the expected result is to get an empty array because both the user and the only project in the database are linked to the location #1.

**Actual result:** 
I get the project #1

**What i tried:**

```
SELECT
    p.id id,
    GROUP_CONCAT(DISTINCT l.id SEPARATOR "#") l_ids
FROM
    PROJECTS p
LEFT JOIN
    PROJECTS_x_LOCATIONS pl ON pl.id_PROJECT = p.id
LEFT JOIN
    LOCATIONS l ON l.id = pl.id_LOCATION
WHERE
    l.id != 1
GROUP BY
    p.id 

```

Thanks for the help!

Answer: 
In swift it has to be checked whether photo output supports flash mode at all.

```
 let settings = AVCapturePhotoSettings()
 if photoOutput.supportedFlashModes.contains(.on) {
     settings.flashMode = self.flashMode
 } else {
     settings.flashMode = .off
 }

 self.photoOutput?.capturePhoto(with: settings, delegate: self)

```
No need to check the camera position, all what we need is to check if the camera has flash of not and according to that we set the flash mode.

```
photoSettings.flashMode = AVCaptureDevice.default(for: AVMediaType.video)!.hasFlash ? .on : .off

```