как написать запрос mysql?

#php #mysql

#php #mysql

Вопрос:

таблица: taxonomy_index

 nid          tid   
2              1
3              1
3              4
3              5
4              6
4              1
4              3
4              7
  

таблица: taxonomy_term_data

 tid           vid          name
1              2           java
2              2            php
3              2            c
4              1           tag1
5              1            tag2
6              1            tag3
7              1            tag4
8              1            tag5
  

теперь я хочу в соответствии с nid=$nid получить name где vid=2 .? как мне поступить?

ниже приведен мой код запроса. но это неправильно.

 $result = mysql_query('select tid,name form taxonomy_index as ti left join taxonomy_term_data as ttd on ti.tid=ttd.tid where vid=2 and nid=$nid')
  

Комментарии:

1. я поместил код в phpmyadmin, он показывает, что у вас ошибка в синтаксисе sql

2. sql выглядит хорошо, смотрите Ответ @GWW, я также меняю «select tid, name» на «select ti.tid,name»

Ответ №1:

Я предполагаю, что вам нужно заменить одинарные кавычки ' на двойные " . Это потому, что PHP не разворачивает переменные, заключенные в одинарные кавычки.

 $result = mysql_query("select tid,name from taxonomy_index as ti left join taxonomy_term_data as ttd on ti.tid=ttd.tid where vid=2 and nid=$nid")
  

Редактировать:

У вас также есть from ошибка в написании как form

Комментарии:

1. выберите tid, назовите форму taxonomy_index как ti, слева присоедините taxonomy_term_data как ttd в ti.tid=ttd.tid, где vid = 2 и nid = 2 , я поместил это в поле запуска sql phpmyadmin, оно показывает ошибку sql # 1064. почему?

2. Я только что сказал вам, почему вы from написали с ошибкой как form

3. прошу прощения. я слишком небрежно

Ответ №2:

Я думаю, что переменные в однострочных кавычках не заменяются, поэтому попробуйте

 $result = mysql_query('select tid,name from taxonomy_index as ti left join taxonomy_term_data as ttd on ti.tid=ttd.tid where vid=2 and nid='.$nid)
  

Комментарии:

1. я поместил этот код в phpmyadmin, он показывает синтаксическую ошибку sql. почему?

2. выберите tid, назовите форму taxonomy_index как ti слева, соедините taxonomy_term_data как ttd на ti.tid=ttd.tid где vid=2 и nid=2

3. @zhuanzhou: проверьте мой ответ, который у вас есть, из формы с ошибкой as.