2011-07-21 8 views
0

1つのクエリで2つのテーブルから情報を取得する必要があります、私はそれをGoogleで検索し、それが結合を思い付いた? それは私がリンクテーブルとの両方で、それはURLとコードを見つけておく必要があり、このMySQLエラー一度に2つのテーブルから情報を取得しますか?

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 

outpus、私はこのコード

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

を得たが、動作するようには思えませんURLにget変数があり、 'apilinks'が 'links'と異なる設定になっているので 同じ見た目のURLがありますが、両方のテーブルをチェックする必要があります

+4

このエラーはクエリ自体と無関係なようです... – thedaian

+0

mysql_error()でより良いエラーメッセージが表示されます! – binarious

+0

クエリは正常です。コードを投稿する必要があります。 – sap

答えて

1

私はあなたのエラーはとにかくあなたのSQLクエリから:

あなたのSQLクエリはデカルト積を生成します。 apilinkのすべての行は、リンクのすべての行と結合されます。これはめったにあなたが望むものではありません。 JOIN条件をWHERE句に追加する必要があります。

あなたのクエリから、私は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' 
1

私はあなたが欲しいどのcode列を指定する必要があると思う:

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

両方のリンクとapilinksでコードとURLを確認する必要があります – Cody

+0

すでに両方をチェックしています。両方を選択したい場合は、 'select links.code、apilinks.code'を使って行うことができます – binarious

0

別の構文:

URLフィールドがリンクテーブルにあると仮定しています。

0
SELECT a.code, a.url 
FROM apilinks a, links l 
ON (a.code = l.code) 
WHERE a.code = "$code"; 
関連する問題