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

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

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

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

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

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

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

$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
05.06.2005, 19:17
    #33101609
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
а как бы вы это сделали в аксесе?
...
Рейтинг: 0 / 0
05.06.2005, 20:32
    #33101631
ЗАБАВА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
Mы в MySQL -e, уважаемый...
...
Рейтинг: 0 / 0
05.06.2005, 20:39
    #33101636
ЗАБАВА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
Вот такую ошибку выдаёт и ничего не пойму:

БД 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
05.06.2005, 20:43
    #33101638
wolk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
какая проблема? выбери из таблицы с телефонами те id, которые не равны id в таблице с юзерами.

ЗЫ у тебя mysql какой? походу вложенные запросы не поддерживает.
...
Рейтинг: 0 / 0
05.06.2005, 20:44
    #33101639
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
В таких случаях можно использовать 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
05.06.2005, 20:47
    #33101644
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой SQL-запрос не получается...
2 ЗАБАВА

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

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

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

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

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

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


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