SQL问题

时间:2009-06-20 06:21:47

标签: sql

<?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>

} ?>

在线程和用户中都有一个名为id的列。它打印用户ID。任何方式我得到它来打印线程ID而不重新命名其中一个。

提前致谢!

5 个答案:

答案 0 :(得分:2)

SELECT *,threads.id as thread_id FROM ...

答案 1 :(得分:1)

SELECT *,threads.id AS thread_id ...

然后你可以从$ row引用thread_id。

$行[ 'THREAD_ID']

答案 2 :(得分:1)

为什么在查询中使用*?最好只调用所需的字段,而不是提取不需要的额外数据。您还需要通过调用上面列出的table_name.field_name格式来指定要使用的ID。

当你开始获得一些复杂的连接时,我喜欢做的是用短字别名表名。只是帮助简化一些事情。

  

SELECT t.ID FROM threads t                         INNER JOIN用户                                             ON t.poster = users.id                                             在哪里t.forum_id = 11

答案 3 :(得分:0)

您需要明确命名该列。如果你输入:

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

应该这样做。

答案 4 :(得分:0)

查看以下代码:     

$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>

} ?>

它将打印线程ID