|
|
|
| Есть 2 таблицы: name1 и name2;
name1 создана так:
create table name1(id int(3) auto_increment, name varchar(10), primary key(id))
|
name2 создана так:
create table name2(id int(3) auto_increment, name varchar(10), primary key(id),foreign key(name) references name1)
|
Вот так заполнены таблицы:
http://s2.ipicture.ru/uploads/20120713/w6ZtiXUf.jpg
Ввожу такой запрос, не работает.
select * from name1 left join name1 on name1.name=name2.name
|
Только начинаю изучать эти джоины, читаю здесь по примеру похожему, что-то не срабатывает: http://www.mysql.ru/docs/man/JOIN.html
Если можно покажите на моих банальных таблицах работу join. Заранее благодарю. | |
|
|
|
|
|
|
|
для: kilogram
(13.07.2012 в 21:58)
| | Попробовал алиасы использовать ,прочитал про них, с ними почему то не работает.
select * from name1 as n1, name2 as n2, left join n2 on n2.name=n1.name
|
Скажите, чем отличается это:
select * from name1 left join name2 on name1.name=name2.name;
|
от этого?
select * from name1 left outer join name2 on name1.name=name2.name;
|
Результат выдает один и тот же | |
|
|
|
|
|
|
|
для: kilogram
(13.07.2012 в 22:58)
| | Вот написал запрос:
select *from name1 right join name2 on name1.name=name2.name where name1.name is not NULL
|
К таблице, имя которой стоит перед джойном - name1,
присоединяется таблица, имя которой идет после джойна - name2
Далее стоит условие, согласно которому выводить. Условие такое:
Выводить, все строки из таблицы name1 с полем name, которые не присутствуют в таблице name2.
У меня такие записи в таблице name2, добавил 2 записи:
http://s2.ipicture.ru/uploads/20120714/Mf1GWGsh.jpg
Почему в результате выводит?
| |
|
|
|
|
|
|
|
для: kilogram
(13.07.2012 в 22:58)
| | А что вы ожидаете, чтобы вывелось? Какая конечная цель? | |
|
|
|