一次从2个表中获取信息


get info from 2 tables at once?

我需要在一个查询中从2个表中获取信息,我在谷歌上搜索它,它提出了连接?我得到了这个代码

mysql_query("SELECT code, url FROM apilinks, links WHERE apilinks.code='$code' and links.code='$code'");

但是它似乎不工作,它输出这个mysql错误

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/codyl/public_html/projects/tests/tirl/code.php on line 18

我需要让它找到url和代码,在链接表和apillinks表,因为url有一个get变量,和' apillinks '的设置不同于'links'url看起来是一样的但需要检查两个表

我不认为你的错误是从你的SQL查询,但无论如何:

SQL查询生成一个笛卡尔积。apillinks中的每一行都与links中的每一行相连。这很少是你想要的。您需要在WHERE子句中添加JOIN条件。

从你的查询,我猜code是你想要加入的列。

SELECT links.code, url 
FROM apilinks, links 
WHERE apilinks.code=links.code
AND links.code='$code'

或者使用显式连接,这对您来说可能更明显:

SELECT links.code, url 
FROM apilinks INNER JOIN links ON apilinks.code=links.code
WHERE links.code='$code'

我想你需要指定你想要的code列:

SELECT links.code, links.url 
FROM   apilinks, links 
WHERE  apilinks.code='$code' 
AND    links.code='$code'

另一种语法:

mysql_query("SELECT a.code, l.url FROM apilinks a, links l WHERE a.code='$code' and l.code='$code'");

请注意,我假设url字段在链接表中

SELECT a.code, a.url 
FROM apilinks a, links l 
ON ( a.code = l.code )
WHERE a.code = "$code";