1

これを言葉で書く方法がわからない

Column A.       Col. B.           Col. C
123456.           Xxx.               Abbd
123456.           Yyy.               Bbbd
765432.           Xxx.               1234
765432.           Yyy.                5167
987654.           Zzz.                Abcd
987654.           Yyy.                Dbca

異なる列。Bがxxxの場合、Aはcol.Aとcolを返します。BとCここでBはYyyです

Results
123456. Yyy.   Bbbd
765432.  Yyy.  5167

しかし、戻らない

987654 yyy dbca
4

1 に答える 1

1

わかりましたので、一方の側がwhere =をJOIN返す同じテーブルに対してする必要があります。それらを使用して、行がないため返されない行を取得しますColumn ABXxx.B = Yyy. 987654ColB = 'Xxx.'

SELECT
  main.ColumnA,
  main.ColB,
  main.ColC
FROM 
  yourtable main
  /* Join a second instance of the table which will be limited by ColB = Xxx */
  JOIN yourtable xids ON main.ColumnA = xids.ColumnA
WHERE
  /* And limit the main instance to ColB = Yyy */
  main.ColB = 'Yyy.'
  AND xids.ColB = 'Xxx.'

http://sqlfiddle.com/#!2/b65d0/3

于 2013-01-04T19:27:58.443 に答える