powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Простой SQL-запрос не получается...
12 сообщений из 12, страница 1 из 1
Простой SQL-запрос не получается...
    #33101551
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица с отрудниками и есть таблица с служебными мобильными телефонами (просто номерами), собственностью фирмы, выдающимися сотрудникам.

В таблице с сотрудниками присваиваю их именам - id-телефонного номера.

Мне нужно запросить из базы свободные номера, понимаете, номера которые никому не выданы.

Вот так написала:

$str_sql = ' SELECT t.tel_id - p.tel_id, tel_nr FROM tbl_tel t, tbl_personal p ';

разумеется не правильно, хотя база не ругается, а выдаёт всё содержимое поля 4 раза.

Помогите!!!
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101591
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот нашла тут по-моему а всё равно не хочет работать :

$sql_query=
     ' SELECT tel_id, tel_nr
        FROM tbl_tel t
        WHERE tel_id NOT IN
        (
        SELECT tel_id
             FROM tbl_personal p
             WHERE t.tel_id = p.tel_id
        ) ';
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101609
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как бы вы это сделали в аксесе?
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101631
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mы в MySQL -e, уважаемый...
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101636
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такую ошибку выдаёт и ничего не пойму:

БД olb - таблица tbl_personal на localhost

Ошибка

SQL-запрос :

SELECT dienst_tel_id, dienst_tel_nr
FROM tbl_dienst_tel dt
WHERE dienst_tel_id NOT
IN (


SELECT dienst_tel_id
FROM tbl_personal p
WHERE dt.dienst_tel_id = p.dienst_tel_id
)
LIMIT 0 , 30

Ответ MySQL:


#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT dienst_tel_id
FROM tbl_personal p
WHERE dt.dienst_tel_id
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101638
wolk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какая проблема? выбери из таблицы с телефонами те id, которые не равны id в таблице с юзерами.

ЗЫ у тебя mysql какой? походу вложенные запросы не поддерживает.
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101639
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таких случаях можно использовать LEFT JOIN.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
-- таблица телефонов

create table tel (
 id int not null auto_increment,
 phone varchar( 20 ),
 primary key(id));

insert into tel (phone)
 select '+7 900 100 00 01' union all
 select '+7 900 100 00 02' union all
 select '+7 900 100 00 03' union all 
 select '+7 900 100 00 04' union all
 select '+7 900 100 00 05' union all
 select '+7 900 100 00 06' union all
 select '+7 900 100 00 07' union all
 select '+7 900 100 00 08' union all
 select '+7 900 100 00 09'

-- таблица персон

create table persons (
 p_id int not null auto_increment,
 name varchar( 20 ),
 id int,
 primary key(p_id));

insert into persons (name, id)
 select 'Вася',  2  union all
 select 'Петя',  3  union all
 select 'Boss',  1 

-- занятые телефоны

select p.name, t.phone
from persons p, tel t
where p.id=t.id

-- свободные телефоны


select t.id, t.phone
from tel t left join persons p
on t.id=p.id
where p.id is null

+----+------------------+
| id | phone            |
+----+------------------+
|   9  | + 7   900   100   00   09  |
|   8  | + 7   900   100   00   08  |
|   7  | + 7   900   100   00   07  |
|   6  | + 7   900   100   00   06  |
|   5  | + 7   900   100   00   05  |
|   4  | + 7   900   100   00   04  |
+----+------------------+

P.S. В следующий раз приводите структуру таблиц и начальные данные.
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101644
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЗАБАВА

Wolk прав. Скорее всего вложенные запросы не поддерживаются.

Выполните SELECT version(); и кидайте сюда.

На будущее MySQL manual
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101650
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4.0.17 под виндовз
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101677
ЗАБАВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
установила сейчас 4.1.12a-nt-max и работает мой запрос.

а с какой версии поддерживаются вложеные запросы?
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101685
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4.1
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Простой SQL-запрос не получается...
    #33101721
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2автор

а как все таки ващи табл называются...
а то сначала FROM tbl_dienst_tel dt а потом WHERE dt.dienst_tel_id
тут или запятых не хватает или с именами лажа

или я настолько туплю.... может ето алиасы к табе.... что то типа select count(pole) as result
_______________
Felix
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Простой SQL-запрос не получается...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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