Общие > Базы данных
Как зделать?
-DieseLok-:
Доброе время суток!
Ситуация:
Есть база, со структурой:
id - Раздел
sud_id - Буква
singer - Имя исполнителя
songs - Название композиции
links - ссылка
Идёт такой запрос:
"SELECT * FROM catalog WHERE sub_id LIKE \'А%\'"; - Тоесть брать записи начинающиеся на букву А.
Суть проблемы:
К примеру, у исполнителя "Агутин" есть несколько композицый, "Граница","Чернокожий парень", получаеться что и базе будет несколько строк с одинаковым полем singer, и при попытке вывести на страницу всех исполнителей на букву А, он выводит исполнителя "Агутин", то количество раз которое у него композицый/строк в базе данных.
Задачя:
Как зделать так чтобы если у исполнителя несколько композицый его имя выводилось всё-ровно 1 раз?
Зарание спасибо!
Макс:
1. читай что-нибудь по теории БД. У тебя она не нормализована. Обычно делают отдельно таблицу испольнителей и отдельно таблицу композиций.
2. БД ничего не выводит, она лишь возвращает запрошенные данные (на SELECT-запрос). Поэтому вопрос
--- Цитировать ----DieseLok-:
Как зделать так чтобы если у исполнителя несколько композицый его имя выводилось всё-ровно 1 раз?
--- Конец цитаты ---
имеет отношение к твоему языку программирования (пхп насколько я понимаю).
-DieseLok-:
Язык ПХП, я вот тут тоже сидел, сидел и надумал, что может так и зделать... я думал мож есть какаято фичя, я плохо разбираюсь думал мож "group by" или чёто типа этого...
Насколько я знаю в мускуле связей между таблицами нету... посему придёться в тупую сравнивать исполнителя из одной таблицы с композицией из другой :(
это типа так?:
Запрос
ispolnitel.php?id=А
Получаем к примеру запрос:
kompoziciya.php?id=Агутин
.
типа так?
-DieseLok-:
Впринцыпе я зделал и всё работает... всмысле с помощью двух таблиц, но всётаки... если кто знает может всётаки есть такая тема опишыте пожалуйста!!!
Спасибо!
commander:
create table ispolnitel
(
ispolnitel_id int not null auto_increment,
name varchar(100),
foto varchar(100),
biografija text,
primary key (ispolnitel_id)
);
create table songs
(
songs_id int not null auto_increment,
ispolnitel_id int,
song_name varchar(255),
links varchar(255),
primary key (songs_id)
);
SELECT songs.song_name, songs.links FROM songs, ispolnitel WHERE songs.ispolnitel_id=ispolnitel.ispolnitel_id AND ispolnitel.name LIKE \'A%\'
Навигация
Перейти к полной версии