sql запрос к двум таблицам в mysql

RO
На сайте с 13.07.2009
Offline
88
2614

есть две таблицы

names

id|name

------

1|aaa

2|bbb

3|ccc

4|ddd

5|eee

и

id|field|some_id|id_name

--------------

1|text|2|1

2|text|2|1

3|text|2|3

4|text|2|2

5|text|2|1

6|text|4|1

7|text|4|1

8|text|5|3

как обратится к бд, чтобы на выходе получить список

text|aaa

text|aaa

text|ccc

text|bbb

text|ccc

null|ddd

null|eee

то есть, вывести все записи из первой таблицы и объединить с другой таблицей даже если между ними нет связей

сейчас делаю так, но данные из первой таблицы не все выводятся

SELECT *

FROM table1 t1

LEFT JOIN table2 t2 on t1.id=t2.id_name

where some_id=2

edogs software
На сайте с 15.12.2005
Offline
775
#1
RedOK:

вывести все записи из первой таблицы и объединить с другой таблицей даже если между ними нет связей
сейчас делаю так, но данные из первой таблицы не все выводятся
SELECT *
FROM table1 t1
LEFT JOIN table2 t2 on t1.id=t2.id_name
where some_id=2

Джоините Вы всё правильно, записи из первой таблицы отфильтровываются у Вас условием some_id=2 .

Если some_id это поле из 2 таблицы и Вы на самом деле хотите сделать выборку вида "вся первая таблица + данные из 2 таблицы там где some_id=2), то это условие надо впихивать в сам join по типу on t1.id=t2.id_name and some_id=2 . Тогда будет вся первая таблица и только та часть второй таблицы, где some_id=2.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
RO
На сайте с 13.07.2009
Offline
88
#2
edogs:
Джоините Вы всё правильно, записи из первой таблицы отфильтровываются у Вас условием some_id=2 .
Если some_id это поле из 2 таблицы и Вы на самом деле хотите сделать выборку вида "вся первая таблица + данные из 2 таблицы там где some_id=2), то это условие надо впихивать в сам join по типу on t1.id=t2.id_name and some_id=2 . Тогда будет вся первая таблица и только та часть второй таблицы, где some_id=2.

как всё просто оказалось :) я уж думал придётся извращаться с циклами и множеством запросов

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий