2014-09-08 3 views
-1

У меня есть 2 таблицы
здесь таблица 1 имя таблицы ForexampleMYSQL влево присоединиться, если то оператор процедуры любимая таблица

Перечень материалов

+-----+----------+-----+ 
| uid | username | age | 
+-----+----------+-----+ 
| 1 | doe  | 17 | 
| 2 | smith | 18 | 
| 3 | john  | 30 | 
+-----+----------+-----+ 

и другой является

избр

+-----+------+---------+ 
| uid | user | itemuid | 
+-----+------+---------+ 
| 1 | alex |  2 | 
+-----+------+---------+ 

Здесь i моя MySQL запрос * не работает * какой-либо способ решить эту проблему, когда я запускаю файл PHP я получил ошибку в синтаксисе тузд

SELECT c.uid, c.username, c.age,i.uid,i.user,i.itemuid 
from itemlist c 
left join fav i on c.uid = i.itemuid 
if (i.user = 'alex') THEN 
SET @fav = 1; 
ELSE 
SET @fav = 0; 
END IF 

это Пример PHP

while ($row = mysqli_fetch_array($res)){ 
    if ($row['fav'] = '1'){ 
      echo $row['username']." is exit in fav"; 
     }else{ 
      echo $row['username']." is not exit in fav"; 
    } 
} 

я надеюсь, что вы понимаете мой вопрос прямо ?

+0

Вы хотите, чтобы мы сделали ваш код для вас? Это вопрос? – ggdx

+0

Извините, Bro .... я просто отредактировал этот вопрос – user3242011

+0

Вы не можете использовать 'IF ... THEN ... END IF' в обычном SQL-запросе. –

ответ

1

Чтобы получить столбец с именем fav, возвращенный в наборе результатов, вам нужно будет включить выражение в список SELECT и дать ему псевдоним fav.

Не совсем понятно, зачем вам нужна пользовательская переменная MySQL; если вы не знаете, зачем вам это нужно, вам, вероятно, это не понадобится.

Учитывая, что ваш PHP код ищет колонку с именем fav в результирующем, скорее всего, вы хотите что-то вроде этого:

SELECT c.uid 
    , c.username 
    , c.age 
    , i.uid AS i_uid 
    , i.user 
    , i.itemuid 
    , IF(i.user='alex',1,0) AS fav 
    FROM itemlist c 
    LEFT 
    JOIN fav i ON i.itemuid = c.uid 

Обратите внимание, что исходный запрос имел два столбца с именем uid; если вы хотите вернуть оба, и иметь возможность ссылаться на оба из них по имени столбца, вам нужно иметь разные имена для каждого. В вышеприведенном запросе я назначил псевдоним столбцу i.uid, так что оба столбца uid будут доступны отдельным именем столбца.

+0

спасибо, сэр, что вы спасли мое время, когда вы лучшая любовь к вам .... я не знаю, почему люди сбивают мой голос ... – user3242011

+0

Иногда получение простого примера того, как обычно делается, - это все, что необходимо. Для меня, похоже, вы провели какое-то исследование, и вы что-то пробовали, и вы были готовы к помощи. Удачи! – spencer7593

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