SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.12.2013 09:44:10

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

Две таблицы

Всем привет!

Таблица 1
id | image | hits
-----------------
1  | 1.jpg | 40
2  | 2.jpg | 25
3  | 3.jpg | 55
4  | 4.jpg | 15
5  | 5.jpg | 53
6  | 6.jpg | 24

Таблица 2
uid | like | type
------------------
1   | 20   | photo
2   |  3   | photo
2   |  5   | VIDEO
3   | 12   | photo
6   | 22   | photo

нужно:
id | image | hits | like | type
--------------------------------
1  | 1.jpg |  40  |  20  | photo
2  | 2.jpg |  25  |   3  | photo
3  | 3.jpg |  55  |  12  | photo
4  | 4.jpg |  15  |      |
5  | 5.jpg |  53  |      |
6  | 6.jpg |  24  |  22  | photo

мой запрос:
SELECT a.id, a.image, a.hits, b.like FROM `Таблица 1` as a
JOIN `Таблица 2` as b
ON a.id = b.uid
WHERE b.type = 'photo'

но результат:
id | image | hits | like | type
--------------------------------
1  | 1.jpg |  40  |  20  | photo
2  | 2.jpg |  25  |   3  | photo
3  | 3.jpg |  55  |  12  | photo
6  | 6.jpg |  24  |  22  | photo

в чем моя ошибка?

Неактивен

 

#2 18.12.2013 11:03:36

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Две таблицы

Здравствуйте.

Ошибка в том, что Вы исключаете из выборки те строки, у которых type не photo.
Попробуйте через LEFT JOIN вместо JOIN.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 18.12.2013 11:04:44

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

Re: Две таблицы

LEFT JOIN Пробовал, результат тот же

в таблице 1 все фотки
в таблице 2 все объекты за которые проголосовали
а мне нужно вывести все фотки с их голосами

Неактивен

 

#4 18.12.2013 11:26:32

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Две таблицы

Тогда немного хитрее

SELECT a.id, a.image, a.hits, b.`like` FROM `t_6892_1` as a
LEFT JOIN `t_6892_2` as b ON a.id = b.uid
WHERE b.type = 'photo' OR b.type is null


Если есть уникальный ключ на (uid,type) все должно сработать корректно.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson