Вопрос SQL - PullRequest
       42

Вопрос SQL

0 голосов
/ 20 июня 2009
<?php


$query = mysql_query("SELECT * FROM threads
                      INNER JOIN users
                      ON threads.poster = users.id
                      WHERE threads.forum_id = 11");

while($row = mysql_fetch_array($query)) {


<a href="thread.php?id=<?=$row['id']?>">Link</a>

} ?>

Theres столбец с именем id в потоках и пользователей. Он печатает идентификатор пользователя. В любом случае, я могу напечатать идентификатор потока без переименования одного из них.

Заранее спасибо!

Ответы [ 5 ]

2 голосов
/ 20 июня 2009

SELECT *, threads.id как thread_id FROM ...

1 голос
/ 20 июня 2009

Почему вы используете * в запросе? Лучше вызывать только те поля, которые вам нужны, чем извлекать лишние данные, которые вам не нужны. Также вам нужно указать, какой идентификатор вы хотите использовать, либо вызвав формат table_name.field_name, как указано выше.

Что мне нравится делать, когда вы начинаете получать сложные объединения, так это создавать псевдонимы таблиц с короткими буквами. Просто помогите немного упростить вещи.

ВЫБРАТЬ t.ID ИЗ темы INNER JOIN пользователи ON t.poster = users.id ГДЕ t.forum_id = 11

1 голос
/ 20 июня 2009

SELECT *, threads.id AS thread_id ...

Тогда вы можете ссылаться на thread_id из $ row.

$ строки [ 'номер_потока']

0 голосов
/ 01 июня 2016

посмотрите на следующий код:

$query = mysql_query("SELECT * FROM threads
                  INNER JOIN users
                  ON users.poster = threads.id
                  WHERE threads.forum_id = 11");

while($row = mysql_fetch_array($query)) {


<a href="thread.php?id=<?=$row['id']?>">Link</a>

} ?>

Будет напечатан идентификатор потока

0 голосов
/ 20 июня 2009

вам нужно явно указать имя столбца. Если вы введете:

SELECT USERS.*, 
       THREADS.ID, 
       USERS.ID 
FROM threads 
     INNER JOIN users 
           ON threads.poster = users.id 
WHERE threads.forum_id = 11

Это должно сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...