У меня есть две таблицы, father
и grand_father
CREATE TABLE IF NOT EXISTS father (
id INT AUTO_INCREMENT,
father_name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS grand_father (
id INT AUTO_INCREMENT,
father_id int(6) NOT NULL,
grand_father_name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO father (id, father_name) VALUES
('1','Abid'),
('2','Hasan'),
('3','Jabed');
INSERT INTO grand_father (id, father_id,grand_father_name) VALUES
('1','1','Jon'),
('2','1','James'),
('3','2','Jakir'),
('4','2','Jamir'),
('5','3','Tom');
select f.father_name,g.grand_father_name
from grand_father g
left join father f
on g.father_id = f.id;
+-------------+-------------------+
| father_name | grand_father_name |
+-------------+-------------------+
| Abid | Jon |
| Abid | James |
| Hasan | Jakir |
| Hasan | Jamir |
| Jabed | Tom |
+-------------+-------------------+
Кодовая ссылка: http://sqlfiddle.com/#!9/8be4c/3 Проблема запроса
Мне нужен такой результат:
+--------------+-------------------+
| father_name | grand_father_name |
+--------------+-------------------+
| Abid | Jon |
| | James |
+--------------+-------------------+
| Abid | Jon |
| | James |
+--------------+-------------------+
| Jabed | Tom |
+--------------+-------------------+
Это возможно или нет?
Как я могу получить такой результат.
Я пытаюсь:
select f.father_name, g.grand_father_name
from grand_father g
left join father f
on g.father_id = f.id