2

過去数時間把握しようとしている MySQL 結合の問題が発生しました。私は2つのテーブルを持っています:

article : 
id(int) 
label(varchar) 
direct_url(varchar)

article_category: 
id(int) 
label(varchar)

ラベルを使用して両方のテーブルを結合して検索クエリを作成しようとしています。私はこれをやっています:

SELECT label,direct_url FROM article FULL OUTER JOIN article_category ON article.label WHERE label LIKE %$q% ORDER BY label ASC

これは機能しないため、明らかに間違っています。検索キー ($q) に関係なく、毎回 0 件の結果が得られます。誰かが私の問題に光を当ててくれれば幸いです。

編集:私のソースはここにあります。

4

1 に答える 1

2

MySQL はサポートしていませんFULL OUTER JOIN。これが実際に行うことは、articleテーブルをにエイリアスすることFULLです。2 つの構文エラーがありOUTER JOINますLIKEJOIN ON article.labelほとんどの場合、あなたがやりたいこともしていません。である必要がありますJOIN ON article.label = article_category.label

完全な外部結合を望んでいないことは確かです-概念的には、これは各テーブルの値であり、他のテーブルにはありませんが、実際には両方のラベルフィールドを検索できるようにしたいようです. がカテゴリを識別する列である場合labelは、現在のarticle.label列の代わりに article_category id を使用することをお勧めします。そうでない場合は、テーブルを結合できるものは何もありません。

于 2013-03-21T14:41:35.743 に答える