2011-10-21 4 views
-2

Я немного смущен от многих до многих таблиц отношений и кода, который идет с ними.От многих до многих запросов взаимоотношений

У меня есть table1:

id, username 

И table2:

id, votes_up, votes_down 

И вспомогательный стол (htable):

vu, vd, adsid 

То, что я хочу, чтобы случиться, когда объявление проголосовали вверх или вниз, этот голос не распространяется на все рекламные объявления.

Моя попытка выбора данных:

mysql_query("SELECT * 
      FROM dbo.tab2 
      INNER JOIN dbo.htable 
      WHERE tab2.votes_up = htable.vu 
       AND htable.votes_down = htable.vd 
      INNER JOIN dbo.tab1 
      WHERE htable.adsID = table1.ID"); 

И моя вставка попытка:

mysql_query("INSERT INTO dbo.htable (vu, vd, adsid) 
      VALUES 
      (SELECT FROM dbo.tab2.votes_up, dbo.tab2.votes_down , dbo.tab1.id)"); 

Мой вопрос: Являются ли эти два запроса правильно? Если нет, как я могу их исправить? и что такое запрос на обновление?

+0

Я едва могу понять, что вы говорите. Постарайтесь быть более четкими. Кроме того, вы должны предоставить больше примеров кода и, возможно, более понятный пример структуры таблицы. Из того, что я могу сказать прямо сейчас, вы должны просто использовать несколько отношений один-ко-многим, и это должно быть хорошо. – casraf

ответ

0

Я не совсем понимаю ваш вопрос, но ваши SQL-запросы неверны. Они должны, вероятно, будет что-то вроде:

SELECT 
    * 
FROM 
    dbo.tab2 as tab2 
    INNER JOIN dbo.htable as htable 
     ON tab2.votes_up = htable.vu 
     AND tab2.votes_down = htable.vd 
    INNER JOIN dbo.tab1 as tab1 
     ON htable.adsID = tab1.ID 

и

INSERT INTO dbo.htable (vu, vd, adsID) 
    SELECT 
     votes_up, votes_down, ID 
    FROM 
     dbo.tab2 
+0

Я пробовал этот код, как вы сказали, но его, похоже, просто пишут в моем php-файле, он не выглядит как код, так как я написал –

+0

Это просто инструкции SQL. Вы должны передать их функции PHP mysql_query(), чтобы фактически выполнить их. И вам также нужно написать код для обработки результата вашего запроса SELECT, но вы должны сделать это сами, так как я не знаю, как выглядит остальная часть вашего кода. –

+0

Я сделал ваш код, но он не вставлял в htable, ничего, и при голосовании forexemple vote_up> 45 и я голосовал, тогда это будет 46, и когда я обновляю страницу, это снова будет 45, и ничего не произойдет в базе данных. любая ошибка здесь? –

Смежные вопросы