繁体   English   中英

一次从 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

I need to have it find url and code, in both the links table and the apilinks table, because the url has a get variable, and 'apilinks' is setup differently than 'links' so it will have the same looking url but it has检查两个表

我不认为您的错误来自您的 SQL 查询,但无论如何:

您的 SQL 查询生成笛卡尔积。 apilinks 中的每一行都与链接中的每一行相连。 这很少是你想要的。 您需要在 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";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM