1

最初のクエリを使用して、次のようにユーザーのIDと名前を取得します。

select id,name from temp_card where sex='$sex' and city='$city' order by name ASC

次に、最初のクエリの結果を使用し、別のテーブルからより多くのデータを取得する2番目のクエリがあります。

select images from temp_card_images where temp_card_id=". $row['id'] ." order by id ASC limit 1

これらの2つのクエリを組み合わせて、3つのフィールド(id、name、images)を1つのwhileループで出力するにはどうすればよいですか?

ありがとうございました!

4

3 に答える 3

3

JOINクエリを実行する必要があります

select tc.id, tc.name, tci.images from temp_card tc
left join temp_card_images  tci
on tc.id = tci.temp_card_id
where tc.sex='$sex' and tc.city='$city' order by tc.name ASC
于 2012-04-06T09:54:51.000 に答える
2

JOINについて学ぶ必要があります。これはこのように達成することができます

SELECT tc.id,tc.name,tci.images
FROM temp_card tc
    INNER JOIN temp_card_images tci ON tc.id=tci.temp_card_id
WHERE sex='$sex' 
  AND city='$city' 
GROUP BY tc.id
ORDER BY name ASC
于 2012-04-06T09:55:13.373 に答える
0

無関係ですが、データベースアクセス層としてPDOを使用することを検討することを強くお勧めします。MySQL、SQLiteなどのほとんどのデータベースタイプで動作し、データベースへのSQLインジェクションを防ぐのに役立ちます。

編集

与えられた結合がはるかに良い答えであるため、答えを削除しました。

于 2012-04-06T09:58:53.783 に答える