У меня проблема при попытке связать 5 таблиц с помощью SQL-запроса UNION
.Одна из проблем заключается в том, что количество элементов, которые мне требуются в каждом запросе SQL, разделенных UNION
, отличается.И когда я использую '' в запросе, чтобы сделать количество элементов в каждом запросе равным, он просто отображает результат только из первого запроса.Вот запрос, который связывает 5 таблиц.
$sql ="(SELECT a.a1,b.b1
FROM a,b
WHERE a.a2 = b.b2)
UNION
(SELECT a.a1,c.c1
FROM a,c
WHERE a.a3 = c.c3)
UNION
(SELECT a.a1,d.d1,d.d2
FROM a,d
WHERE a.a4 = d.d4)
UNION
(SELECT a.a1,e.e1,e.e2,e.e3
FROM a,e
WHERE a.a5 = e.e5)";
Это показывает ошибку, в то время как, когда я переписываю ее так, чтобы количество элементов было равным (здесь 4) как:
$sql ="(SELECT a.a1,b.b1,'',''
FROM a,b
WHERE a.a2 = b.b2)
UNION
(SELECT a.a1,c.c1,'',''
FROM a,c
WHERE a.a3 = c.c3)
UNION
(SELECT a.a1,d.d1,d.d2,''
FROM a,d
WHERE a.a4 = d.d4)
UNION
(SELECT a.a1,e.e1,e.e2,e.e3
FROM a,e
WHERE a.a5 = e.e5)";
Я получаю только результат 1-го запроса, т. Е. Результат SELECT a.a1, b.b1, '', '' из a, b, где a.a2 = b.b2 отдельно