Автор Тема: Проблема с поиком =(  (Прочитано 5497 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BioIgor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с поиком =(
« : 24 Мая 2005, 20:44:28 »
MySQL выдаёт ошибку "Column \'*****\' in where clause is ambiguous", как мне это избежать??? Сама база данных должна состоять из нескольких однотипных таблиц.
Пример:

create table tab1
(
    Nr int unsigned not null auto_increment primary key,
    nosaukums char(200) not null,
    zv_kods char(20),
    inv_kart_nr int unsigned,
    cena float(15,2) unsigned not null,
    atlikums_per_sak int unsigned not null,
    izdots int unsigned,
    atlikums_per_beig int unsigned not null
);

create table tab2
(
   Nr int unsigned not null auto_increment primary key,
   nosaukums char(200) not null,
   zv_kods char(20),
   inv_kart_nr int unsigned,
   cena float(15,2) unsigned not null,
   atlikums_per_sak int unsigned not null,
   izdots int unsigned,
   atlikums_per_beig int unsigned not null
);



Скрипт поиска на PHP

Оффлайн sarutobi

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 61
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с поиком =(
« Ответ #1 : 24 Мая 2005, 21:48:55 »
Ты бы хоть запрос привел, после кторого сообщение появляется...
Про структуру таблиц - твоя головная боль, тайный смысл сих действий мне не ясен....

Оффлайн sarutobi

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 61
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с поиком =(
« Ответ #2 : 24 Мая 2005, 21:51:09 »
а просит он всего ничего: опиши из какой таблицы поле в  where указано, а то две таблицы содержат одно и то же имя поля.....
например tab1.nr вместо nr.

Оффлайн BioIgor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с поиком =(
« Ответ #3 : 24 Мая 2005, 21:56:45 »
Дело в том, что мне именно так и надо (чтобы были одинаковые поля)
Текст запроса таков:
select * from tab1,tab2 where cena like 0.06;

Оффлайн sarutobi

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 61
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с поиком =(
« Ответ #4 : 24 Мая 2005, 22:08:31 »
куча ошибок в запросе
select * from tab1,tab2 where cena like 0.06
1. select * from tab1,tab2 вернет декартово произведение записей (число записей в tab1*число записей в tab2)
2. Определись, из какой таблицы нужно брать cena (tab1.cena или tab2.cena)
3. cena like 0.06 должно выглядеть как cena=0.06
4. идем вот сюда http:/www.mysql.ru и читаем раздел для новичков, узнаем много нового и полезного про построение запросов

Оффлайн BioIgor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с поиком =(
« Ответ #5 : 24 Мая 2005, 22:14:35 »
Поясни PLS толково. =)))))
Запрос "cena" мне надо из обеих табли одновременно.
Запрос типа:
select * from tab1 where cena like 0.06;
Выдаёт именно то что мне надо и даже не ругается. Кстати сайт не грузится =(((

Оффлайн sarutobi

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 61
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с поиком =(
« Ответ #6 : 24 Мая 2005, 22:59:12 »
http://www.mysql.ru
http://citforum.ru - раздел базы данных
http://www.sql.ru/
После этого вопросы должны исчезнуть

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Проблема с поиком =(
« Ответ #7 : 25 Мая 2005, 10:34:11 »
sarutobi
Цитировать
1. select * from tab1,tab2 вернет декартово произведение записей (число записей в tab1*число записей в tab2)

что подразумеваеться под этим выражением: "вернет декартово произведение записей" ?
BioIgor
Цитировать
select * from tab1 where cena like 0.06;
Выдаёт именно то что мне надо и даже не ругается. Кстати сайт не грузится =(((

использование LIKE тут обсалютно не нужно...
And no religion too...

Оффлайн BioIgor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с поиком =(
« Ответ #8 : 25 Мая 2005, 10:47:28 »
Ну а как мне тогда сделать этот ё.....й запрос? Я только новичёк во всём этом. Хоть бы простенький пример привели, что ли =((((((
1) Как сделать запрос на колонку находящейся в двух и более одинаковых таблицах? (Вывод должен быть полным т.е. всё содержимое n-ой строки)????
Или 2) Как сделать поиск по двум колонкам одной таблици одновременно???????
Зарание огромное спасибо!

Оффлайн sarutobi

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 61
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с поиком =(
« Ответ #9 : 25 Мая 2005, 19:30:36 »
Commander:
Декартово произведение ( я привел формулу) = в n-мерном пространстве произведение числа точек по всем измерениям ( в данном случае произведение числа строк в одной таблице на число строк в другой).
Добавлено специально по просьбе Commander:
Т.Е.
Число записей, которые вернет запрос, соответствует произведению числа строк одной таблицы на число строк в другой. Каждая запись будет содержать все поля из обеих таблиц.

BioIgor:
1. так как у тебя таблицы содержат одни и те же столбцы ( честное слово, не знаю зачем это ....):
Select Nr,nosaukums, zv_kods, inv_kart_nr,cena,atlikums_per_sak,
izdots,atlikums_per_beig
From tab 1
where price=0.06
UNION
Select Nr,nosaukums, zv_kods, inv_kart_nr,cena,atlikums_per_sak,
izdots,atlikums_per_beig
From tab 2
where price=0.06;

Не уверен в том, что можно ставить звезду в запросах, объединяемых по UNION.

2. Select * from tab1 where price=0.06 AND [OR] второе условие выбора.
« Последнее редактирование: 26 Мая 2005, 14:01:42 от sarutobi »

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Проблема с поиком =(
« Ответ #10 : 26 Мая 2005, 09:17:08 »
sarutobi
Цитировать
Декартово произведение ( я привел формулу) = в n-мерном пространстве произведение числа точек по всем измерениям ( в данном случае произведение числа строк в одной таблице на число строк в другой)

хммм.... ну тут пожалуй можно порекомендовать почитать какие-нибудь книжки по основам SQL, и что уж точно, дак это не давать ответы на вопросы в этом форуме... хотя бы в ближайшие несколько месяцев....
And no religion too...

 

Sitemap 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