2つのテーブルを結合したい、最初のテーブルから1つのレコードを読み込み、2つ目のテーブルから2つのレコードを読み込みます。最初のテーブルには、すべてを選択したいフィールドがあります。 2番目のテーブルは、外部キーを使用して1番目のテーブルに接続されています。2つのテーブルを結合し、2つ目のテーブルから2つのレコードを読み込みます。
まずテーブル:
+----+-------------+
| id | some_fields |
+----+-------------+
| 23 | S.T |
+----+-------------+
| 24 | S.T |
+----+-------------+
| 25 | S.T |
+----+-------------+
セカンドテーブル
+----+----------+------------+
| fid| meta_key | meta_value |
+----+----------+------------+
| 24 | meta_1 | m_1 |
+----+----------+------------+
| 24 | meta_2 | m_2 |
+----+----------+------------+
| 25 | meta_2 | m_3 |
+----+----------+------------+
私が欲しいアウトポット:
+----+-------------+--------+-------+
| id | some_fields | meta_1 | meta_2|
+----+-------------+--------+-------+
| 24 | S.T | m_1 | m_2 |
+----+-------------+--------+-------+
| 25 | S.T | null | m_3 |
+----+-------------+--------+-------+
私は、このクエリが間違っている知っている:
SELECT *
FROM posts
INNER JOIN postmeta ON (posts.id = postmeta.fid)
WHERE 1 =1
AND (
postmeta.meta_key = 'meta_1'
OR postmeta.meta_key = 'meta_2'
)
AND posts.post_type = 'ignition_product'
AND (
posts.post_status = 'publish'
OR posts.post_status = 'private'
)
GROUP BY posts.ID
ORDER BY postmeta.meta_value +0 DESC
LIMIT 0 , 7