2017-01-19 2 views
0

Я хочу удалить данные из контакта, contact_message и contact_reply данных с

контактной таблицы (1) данных
-id
-кода
-ip
-date стол
СписокMysql delete Внутреннее соединение не работает?

Array 
    (
     [0] => Array 
      (
       [id] => 1 
       [code] => asq12d134 
       [mail] => [email protected] 
       [date] => 2017-01-18 
      ) 
     [1] => Array 
      (
       [id] => 2 
       [code] => 1qeacetq 
       [mail] =>[email protected] 
       [date] => 2017-01-18 
      ) 
       [2] => Array 
      (
       [id] => 3 
       [code] => awq12sq 
       [mail] =>[email protected] 
       [date] => 2017-01-18 
      ) 
    ) 



contact_message table (1 данные)
-id
-messageid
-message
-date

список contact_message данных

Array 
(
    [0] => Array 
     (
      [id] => 5 
      [messageid] => 1 
      [message] => A new e-mail 
      [date] => 2017-01-18 
     ) 

) 


SQL запрос

 DELETE i,im FROM contact AS i 
INNER JOIN contact_message AS im WHERE i.id=im.id and i.id=1 


Результат (ошибка)

Çözümleme sırasında 3 hata bulundu. 

    Beklenmedik belirteç. (near "i" at position 7) 
    Beklenmedik belirteç. (near "," at position 9) 
    Beklenmedik belirteç. (near "im" at position 11) 
    SQL sorgusu: 

    DELETE i,im FROM contact AS i 
    INNER JOIN contact_message AS im WHERE i.id=im.id and i.id=1 


    MySQL çıktısı: Belgeler 

    #1054 - Unknown column 'i.id' in 'where clause' 

Каково ваше решение?

ответ

1

Я не уверен, почему он не работает, но вы должны (хотя это необязательно) использовать ON вместо WHERE - он значительно сокращает количество строк для поиска и работает быстрее и безопаснее.

DELETE i, im FROM contact i 
JOIN contact_message im ON i.id = im.id 
WHERE i.id = 1 
+0

Good Job :) Worked –

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