2014-09-07 3 views
-1

У меня есть база данных, называемая mydatabase. В MyDatabase У меня есть несколько таблиц:Как выбрать таблицу DESC, которая содержит определенное слово

tablename1 
tablename2 
event1 
event2 
tablename3 
event3 
tablename4 

у меня будет новая таблица событий каждую неделю. Как я могу выбрать только последнюю таблицу событий? (в этом примере это event3, но через 30 недель это будет event30).

Или как мне создать таблицы событий?

+0

необходимо снова пересмотреть схему базы данных – c4pone

+0

Как бы это было лучше? Пожалуйста, приведи пример. Я все еще новичок – 10now

+0

Я делаю сайт регистрации для наших еженедельных футбольных матчей. Каждую неделю игрокам приходится регистрироваться на следующее мероприятие. Таким образом, будет следующая информация: player_name, timestamp. Я хочу показать последнее событие на сайте, чтобы игроки не регистрировались в прошлых событиях. Я довольно новичок в mysql. Теперь я думаю о добавлении столбца «номер события». Будет ли это работать? – 10now

ответ

1

You should read about relational database and how MySQL works, но с учетом предоставленной информации довольно простой пример будет в лучшем случае 3 таблицы.

  1. будут ваши зарегистрированные пользователи
  2. будут ваши события зарегистрированы
  3. будут участники мероприятия

Вот пример того, что она будет выглядеть так:

CREATE TABLE users 
(
    id int auto_increment primary key, 
    name varchar(50), 
    email varchar(255) 
); 


CREATE TABLE events 
(
    id int auto_increment primary key, 
    name varchar(50), 
    description TEXT, 
    happens DATETIME 
); 


CREATE TABLE event_participants 
(
    id int auto_increment primary key, 
    event_id int, 
    user_id int 
); 
  • Ваши пользователи будут зарегистрированы на ваш users таблица и каждый пользователь получает уникальный ID и, таким образом, одному и тому же пользователю не нужно регулярно регистрироваться на веб-сайте для участия в мероприятии.
  • Ваши события зарегистрированы в вашей таблице events, и каждое событие получает уникальный ID, таким образом вы можете легко искать события, события в будущем и т. Д.
  • Когда пользователь участвует в событии, они вставляются в таблицу event_participants, чтобы вы точно знали, кто участвует в каком событии, вы можете подсчитать, сколько раз пользователь участвует в других мероприятиях и многом другом.

Так вот пример:

INSERT INTO users (name, email) 
VALUES 
('John', '[email protected]'); 

INSERT INTO events (name, description, happens) 
VALUES 
('Young Project', 'Its a soccer...', NOW()); 

Как вы можете видеть выше, я создал событие и также пользователь зарегистрирован.

Теперь, как мне собрать 2? Я также ссылаюсь на свой третий стол следующим образом:

INSERT INTO event_participants (event_id, user_id) 
VALUES 
(1, 1); 

Теперь, как узнать, что пользователь участвует в мероприятии?Вот простой пример:

SELECT u.name AS `participantName`, e.name AS `eventName`, e.happens 
    FROM event_participants ue 
    JOIN users u 
    ON u.id = ue.user_id 
    JOIN events e 
    ON e.id = ue.event_id 
WHERE e.id = 1 

And here is a LIVE DEMO of it working.

Вы можете дополнительно перечислить все события:

SELECT * FROM events 

или конкретный один:

SELECT * FROM events WHERE id = 1 

Вы можете далее список все пользователей:

SELECT * FROM users 

или конкретный один:

SELECT * FROM users WHERE id = 1 

Как выбрать последний зарегистрированный случай?

SELECT * FROM events ORDER BY id DESC LIMIT 1 
Смежные вопросы