Mysql, как изменить переменную

0

моя проблема заключается в следующем:

$channeldb = mysql_query("SELECT * FROM channels AS ch
            LEFT JOIN groups AS gr 
            ON gr.code = ch.code
            ". $searchdb ." LIMIT 100");
while($channel = mysql_fetch_assoc($channeldb))
...

переменная $ cannel [id] - из групп таблиц, но мне нужно от каналов

как это:

$ch-id = ch.id;

но как :)

Спасибо за помощь

  • 0
    Простой ответ. Не используйте select * ....
Теги:

2 ответа

0
Лучший ответ

Явным образом выберите нужные столбцы. Например:

SELECT ch.id
FROM channels ch LEFT JOIN
     groups gr 
     ON gr.code = ch.code;

Для кода приложения вы не должны использовать SELECT * для (по крайней мере) четырех причин:

  • Если базовые таблицы меняются, это может повлиять на ваш код (и это трудно отладить).
  • Если таблицы имеют одинаковые столбцы, вы получаете путаницу.
  • Возврат лишних неиспользуемых столбцов - это просто трата пропускной способности (и, следовательно, время).
  • В вашем коде должно быть четко указано, какие данные он использует.

Если вам нужны оба идентификатора, то они должны быть следующими:

SELECT ch.id as channel_id, gr.id s group_id
FROM channels ch LEFT JOIN
     groups gr 
     ON gr.code = ch.code;

Кроме того, если у вас есть уникальный идентификатор в каждой таблице, его, вероятно, следует использовать для JOIN, а не для code.

  • 0
    большое спасибо тебе
0

Используйте select id из каналов, затем запрос вернет идентификатор из каналов

  • 0
    спасибо ты тоже друг

Ещё вопросы

Сообщество Overcoder
Наверх
Меню