Предположим у меня есть три таблицы:MySql присоединиться заявление со всеми строками в левой таблице
1. Fields
ID
NAME
2. DATA
ID
f_id
p_id
data
3. PROJECT
ID
И мне нужно, чтобы выбрать все строки из таблицы полей каждый раз с разными данными (в зависимости от того, что проект мне нужно) Поэтому каждый раз, когда у меня будут все строки полей, и если у проекта X нет данных для некоторого поля, он вернет пустую строку.
Я попытался следующим SQL заявления:
SELECT * FROM field as f
left data as d on f.ID = d.f_id
WHERE d.p_id = 'X'
Это будет возвращать только те строки, которые проектируют X имеют некоторые данные и не будет возвращать пустые строки, если нет данных.
Я также попытался:
SELECT * FROM field as f
left join data as d on f.ID = d.f_id
left join project as p on p.ID = d.p_id
Это будет возвращает все строки из полей, но и возвращать другие данные проекты, и если больной добавить где заявление его не будет возвращать пустые строки, если проект не имеет никаких данных.
Я также попытался: только
SELECT * FROM field as f
left join data as d on f.ID = d.f_id
left join project as p on p.ID = d.p_id
WHERE (p.ID == 'x' || p.ID is null)
Но это возвращение поля строк, если строки не используются по другому проекту, и если есть поле, другой проект, используя его, так что я не получите это поле. (не получая al строк из левой таблицы)
Как я могу выбрать все строки из левой таблицы (полей) в любом случае, также, если у проекта нет данных?
Ужасные названия таблиц, поле и данные ... – jarlh
Его только для примера, а не настоящие имена @jarlh – Jordan