0

私はこのような2つのテーブルを持っています:

表1

+----+-----------------------+--------------------+
| | ID | 郵便番号4 | ウーンプラッツ |
+----+-----------------------+--------------------+
| | 1 | 9044 | ビートガム |
| | 2 | 9045 | ビートガンマーモール |
| | 3 | 1028 | アムステルダム |
| | 4 | 1029 | アムステルダム |
| | 5 | 1030 | アムステルダム |
+----+-----------------------+--------------------+

表 2

+----+--------+-------+
| | ID | 4PP | レギオ |
+----+--------+-------+
| | 1 | 9044 | 2 |
| | 2 | 9045 | 2 |
| | 3 | 1028 | 4 |
| | 4 | 1029 | 4 |
| | 5 | 1030 | 4 |
+----+--------+-------+

最初に、ビートガムのレジオを選択します。この場合はレジオ 2 です。次に、同じレジオを持つテーブル 2 の他のすべての 4PP が必要です (2)。したがって、クエリの結果は 9044,9045 になる必要があります

4

4 に答える 4

3

そして、これが結合されたものです:)

SELECT t2.*
FROM Table1 
INNER JOIN Table2 ON Table2.4PP = Table1.Postcode4
INNER JOIN Table2 t2 ON t2.Regio = Table2.regio
WHERE Table1.woonplaats = 'Beetgum'

フィドル: http://sqlfiddle.com/#!2/347f3/3

于 2013-03-14T20:07:42.140 に答える
1

これは、誰かが派手な結合されたクエリを提供するまで、本当にくだらないクエリです (それを使用する必要があります)。

select t.4PP from Table2 t
WHERE t.Regio in
(
  select Regio
  from Table2 t2
  join Table1 t1 on t2.4PP=t1.Postcode4
  where t1.woonplats='Beetgum'
)
于 2013-03-14T20:07:04.107 に答える
0

これはあなたが探しているもののようです:

SELECT GROUP_CONCAT(Table3.4PP) 4PP FROM Table1
INNER JOIN Table2 ON(Table1.PostCode4 = Table2.4PP) 
INNER JOIN Table2 AS Table3 ON(Table2.Regio = Table3.Regio) 
WHERE woonplaats = 'Beetgum';

デモ

于 2013-03-14T20:17:49.260 に答える
0

これでできるはず

select 4PP from table2 where Regio in (select Regio from table2 where 4PP in (select PostCode4 from table1 where woonplaats = "Beetgum"))
于 2013-03-14T20:04:41.460 に答える