Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: left join
 
 автор: kilogram   (13.07.2012 в 21:58)   письмо автору
 
 

Есть 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 в 22:58)   письмо автору
 
   для: 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   (14.07.2012 в 00:58)   письмо автору
 
   для: 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

Почему в результате выводит?
1  Петя   1 Петя

  Ответить  
 
 автор: cheops   (15.07.2012 в 06:01)   письмо автору
 
   для: kilogram   (13.07.2012 в 22:58)
 

А что вы ожидаете, чтобы вывелось? Какая конечная цель?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования