Я пытаюсь сделать запрос.Выберите данные, если не существует в другой таблице
три таблицы:
Table A
id
id_C
name
-
table B
id
id_A
id_X
-
table C
id
name
Я хотел бы иметь все данные в таблице А, где B.is_A является недействительным и B .id_X имеет значение NULL.
Я пытаюсь с этим запросом
SELECT A.id, A.name
FROM A
INNER JOIN C ON (C.id = A.id_C)
LEFT JOIN B ON (A.id = B.id_A)
WHERE C.a_column = 3
AND B.id_A IS NULL
AND B.id_X IS NULL
Это возвращение запрос всегда 0.
Как я могу построить запрос, которые возвращают данные мне нужно?
EDIT:
Я даю некоторые данные:
У меня есть три таблицы:
Table prestation
id | name | owner_id
1 | Test | 3
2 | Toto | 7
3 | Tutu | 2
4 | Tata | 2
5 | Titi | 4
Table owner
id name
1 | John
2 | Alice
3 | Bob
Table prestation_has_salaried
id | prestation_id | salaried_id
1 | 2 | 7
2 | 5 | 82
3 | 8 | 82
4 | 10 | 7
5 | 29 | 12
В моей таблице prestation_has_salaried пару prestation_id и salaried_id уникален.
Пытаюсь построить запрос, возвращение из таблицы право ангарии:
Prestation.id | Prestation.name
3 | Tutu
4 | Tata
Потому что мне нужно право ангарии владельца Боба и потому, что prestation_has_salaried не имеет prestation_id 3 и 4 (так prestation_has_salaried.prestation_id равна нулю). Я думаю, что могу построить это с помощью LEFT JOIN, но я бы хотел, чтобы prestation_has_salaried.salaried_id тоже был пустым. Могу ли я получить это в том же запросе? Или, может быть, мне нужно пройти через мой PHP-скрипт?
Мой запрос выглядит следующим образом:
SELECT prestation.id, prestation.name
FROM prestation
INNER JOIN owner ON (prestation.owner_id = owner.id)
LEFT JOIN prestation_has_salaried ON (prestation.id = prestation_has_salaried.prestation_id)
WHERE owner.id = 3
AND prestation_has_salaried.prestation_id IS NULL
AND prestation_has_salaried.salaried_id IS NULL
Этот запрос возврата 0 линии.
Я надеюсь, что мое объяснение понятно ...
Ваш вопрос не имеет смысла. Во-первых, как вы можете получить строки в * A *, если 'B.id_a' NULL - нет совпадения? Кроме того, в вашем вопросе не упоминается 'C', но ваш пример кода. Пожалуйста, отредактируйте вопрос и укажите образцы данных, желаемые результаты и четкое изложение того, что вы хотите сделать. –
некоторые данные примера необходимы для понимания вопроса. –
показать правильный образец данных и ожидаемый результат. – scaisEdge