2011-12-28 9 views
1

次のクエリを一緒にマージできますか?2つのMySQLクエリを一緒にマージする方法

は私がタイトル

SELECT ID FROM 'social_objects_single' 
WHERE 'title' LIKE '%indian%' LIMIT 0 , 30 

どのように私は、特定のタイトルのサブグループ23のオブジェクトのみを取得することができため、私もこの検索を持って

SELECT ID FROM social_objects 
WHERE subgroup='23' ORDER BY time_created DESC LIMIT 0 , 30 

を使用し、特定のタイプのすべてのオブジェクトを取得するには?

+0

2つのテーブルはどのように関連していますか? – JonH

+0

social_objectsとsocial_objects_singleの関係(共通キー)を教えてください – Icarus

+0

テーブルsocial_objectsには、ユーザー、ブログなどのすべてのsocial_objectsのIDが含まれています。social_objects_singleテーブルには、これらのオブジェクトに関する完全な情報が含まれています。だから検索をするために、私はこれらの2つのテーブルをまとめてIDを取得する必要があります。 – user632347

答えて

2

social_objects_singleは、あなたがこれを行うことができsocial_objectsテーブルと同じID持っている場合:

SELECT so.ID FROM social_objects so 
INNER JOIN social_objects_single soi ON soi.ID = so.ID 
WHERE so.subgroup = 23 AND soi.title LIKE '%indian%' 
ORDER BY so.time_created DESC LIMIT 0, 30; 
+0

一般的に、IDは各テーブルで一意であるため、親がすでにIDである場合は、外部キーにIDを付けることは望ましくありません。 – JonH

+0

@krister:どうすれば追加のANDを追加できますか?私は、オブジェクトが有効かどうかを知るためにsocial_objectsテーブルを調べる必要があります。なぜなら、非アクティブなコンテンツを表示したくないからです。 so.subgroup = 23とsoi.title LIKE%indian%はどこですか? * so.active = 'yes' * – user632347

+0

@JonH:サブグループとは無関係に、検索語句に一致するすべてのコンテンツを返します。それを修正するには? – user632347

4

2つのテーブルはどのように関連していますか?彼らの両方を使用すると、内部の参加IDを参照し、使用条件を組み合わせている場合:

SELECT Parent.ID, Child.ID 
FROM ParentTable 
INNER JOIN ChildTable ON ParentTable.ID = ChildTable.ForeignKeyID 
WHERE Parent.ID = 23 AND Title LIKE '%indian%' 
+0

ForeignKeyIDは何が必要ですか? – user632347

+0

@ user632347 - テーブルはどのようにして相互にリンクしていますか?親テーブルと子テーブルの関係が必要です。だからあなたは私が書いたものを取って、その関係がどのように存在するかを記入する必要があります。たとえば、1つのテーブルにプライマリキーとしてIDがあります。プライマリキーは、リンクされたテーブルで(外部キーとして、通常は同じ列名で)どのように表されますか?たとえば、ユーザーテーブルとクラステーブルユーザーがクラスを持っている場合、3番目のテーブルにUserIDとClassIDがあります。 UserIDはUsers Tableを参照し、ClassIDはクラステーブルを参照します。 – JonH

0

SELECT SO.ID,SOS.ID
FROM social_objects SO ,social_objects_single SOS
WHERE SOS.title LIKE '%indian% and SO.subgroup=23 and SOS.id =SO.subgroup_id

テーブルが接続されているため、最後の条件SOS.id = SO.subgroup_idを置き換えてください。

関連する問題