INNER JOIN - возвращает строки, когда есть хотя бы одно совпадение в обеих таблицах.
Синтаксис SQL INNER JOIN
- Замечание: INNER JOIN это тоже что и JOIN.
Пример SQL INNER JOIN
Есть таблица "Persons":
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Есть таблица "Orders":
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Теперь мы хотим выбрать все лица имеющих какие-либо заказы.
Для этого используем такой запрос:
Результат запроса:
| LastName | FirstName | OrderNo |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
SQL Inner Join





Комментарии
Thanx. Цитировать
SELECT cat,(SELECT COUNT(*) FROM t INNER JOIN t ON cat.id = t.id) FROM t
ошибка
Not unique table/alias: 't' Цитировать
пример: к таблице "Persons" добавим еще два поля "Date" и "Opis_OrderNo", в поле "Opis_OrderNo" заполняется текст с OrderNo который принадлежит таблице "Orders" (одной ячейке "OrderNo" может принадлежать несколько ячеек "Opis_OrderNo", задача:
присвоить каждой ячейке "OrderNo" таблицы "Orders" последнее по времени значение в поле "Opis_OrderNo" таблицы "Persons" Цитировать
It was very clear and understandable example :) Цитировать
На примере этих таблиц у меня есть задача.
Мне нужно достать из таблицы "Persons" все записи и одновременно проверить,
Существует ли запись на данную персону во второй таблице по какому нибуть идентификатору.
Тоесть если существует хоть одна запись мне нужно как-то это определить, напр. получить true или false или достать значение или ничего не достать из второй таблицы если записи в ней нет.
На данный момент уменя выводится первая запись из "Persons" столько раз сколько есть записей во второй таблице по идентификатору.
Но мне этого ненадо.
Мне нужно достать все записи из "Persons" и проверить существование записи во второй таблице.
Если у меня 3 записи, то 3 записи мне и нужны, а из второй таблицы только "да" или "нет"
Вот такая у меня задача.
Возможно ли это решить одним запросом?
Заранее спасибо.