powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / select plz
13 сообщений из 13, страница 1 из 1
select plz
    #33123071
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то голова не думает ))
помогите решить задачку:
tab1
g_id g_name g_test

tab2
f_id g_id f_name

нужно сделать выборку типа:
select tab2.*, tab1.g_name from tab1, tab2 where tab2.g_id='$znachenie' and tab1.g_id='$znachenie'
так вот когда в tab2 есть запись с tab2.g_id=tab1.g_id, то все ок, в противном случае ничего не возвращается, а мне нужно, чтоб и при отсутствии записи в tab2 для определенного tab1.g_id возвращалось значение tab1.g_name.
Желательно без вложенных запросов.
---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
select plz
    #33123073
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл еще, что нужно просчитать в запросе count(tab2.f_id)
---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
select plz
    #33123570
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай доки по видам соединений таблиц. Там и найдёшь ответ.
...
Рейтинг: 0 / 0
select plz
    #33125550
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я в курсе того, что читать нужно.
по делу есть что-нибудь или так треп только.
...
Рейтинг: 0 / 0
select plz
    #33125665
trijin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычное внешнее соединение.
Код: plaintext
1.
2.
3.
SELECT tab2.*, tab1.g_name 
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.g_id=tab2.g_id 
WHERE tab1.g_id='$znachenie'
Вот и все. и надеюсь это только заготовка для запроса =))
------------------
Чем меньше букв, тем ёмче слово
...
Рейтинг: 0 / 0
select plz
    #33126186
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolkя в курсе того, что читать нужно.
по делу есть что-нибудь или так треп только.

Если в курсе, то читай.
Свою халявную и ламерную сущность лучше не показывать, это нигде не любят.
Впрочем trijin нравится, видимо, отвечать таким перцам
...
Рейтинг: 0 / 0
select plz
    #33126262
trijin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenВпрочем trijin нравится, видимо, отвечать таким перцам
а просто от работы немного отдыхаю. проще такие чем те которые я +)
...
Рейтинг: 0 / 0
select plz
    #33131993
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Johnmen wolkя в курсе того, что читать нужно.
по делу есть что-нибудь или так треп только.

Если в курсе, то читай.
Свою халявную и ламерную сущность лучше не показывать, это нигде не любят.
Впрочем trijin нравится, видимо, отвечать таким перцам

вообще-то trijin ответил не совсем в тему, недочитал наверное.
речь идет о следующем:

tab1
g_id g_name
1 g1
2 g2
3 g3

tab2
f_id g_id
1 1
2 1
3 1
4 2
5 1

нужно одним запросом достать tab2.*, tab1.g_name, count(tab2.f_id) для любого заданного g_id + желательна работоспособность запроса если в tab2 нет ни одной записи для заданного g_id
to johnmen: покажи свою "не" ламерную сущность.
...
Рейтинг: 0 / 0
select plz
    #33131995
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trijinОбычное внешнее соединение.
Код: plaintext
1.
2.
3.
SELECT tab2.*, tab1.g_name 
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.g_id=tab2.g_id 
WHERE tab1.g_id='$znachenie'
Вот и все. и надеюсь это только заготовка для запроса =))
------------------
Чем меньше букв, тем ёмче слово

и чем это отличается от того, что было написано в самом начале??
...
Рейтинг: 0 / 0
select plz
    #33132407
trijin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolk
и чем это отличается от того, что было написано в самом начале??

А отличается он тем как раз что выводит g_name даже если нету tab2.g_id=tab1.g_id
По поводу COUNT - хотелось бы уточнить .. если тебе в списке нужны все f_id сами значения, и количество этих значений, то это подзапросом. Если нужно только их количество то.
Код: plaintext
1.
2.
3.
4.
SELECT tab2.*, tab1.g_name, count(tab2.f_id) as cnt
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.g_id=tab2.g_id 
WHERE tab1.g_id='$zna4enie'
GROUP BY (tab1.g_id)
при $zna4enie=3 (по твоим тестовым таблицам) cnt = 0
...
Рейтинг: 0 / 0
select plz
    #33134780
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. проблема решаема только вложенным запросом. жаль.
спасибо за помощь
---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
select plz
    #33134880
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolkт.е. проблема решаема только вложенным запросом. жаль.
спасибо за помощь
---------
С уважением!


то ли лыжи не едут то ли я не вижу вложенных запросов :)
...
Рейтинг: 0 / 0
select plz
    #33135102
trijin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JackSто ли лыжи не едут то ли я не вижу вложенных запросов :)
прочитай выше мой пост - там мой ответ... и не в самом запросе +)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / select plz
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]