sql >> データベース >  >> RDS >> Mysql

テーブル内のテーブルをクエリするにはどうすればよいですか?

    変数を使用して、最後のIDが現在のIDと等しいかどうかを確認できます。その場合は、代わりにnullまたは''を出力します。

    select
      case when c.ClientId <> @clientid then c.Name else '' end as ClientName,
      case when c.ClientId <> @clientid then @ClientId := c.ClientId else '' end as ClientId,
      p.ContactId,
      p.Name as ContactName
    from
      Clients c
      inner join Contacts p on p.ClientId = c.Clientid
      , (select @clientid := -1) x
    order by
      c.ClientId, p.ContactId
    

    例: http://sqlfiddle.com/#!2/658e4c/6

    これは少しハッキーであることに注意してください。意図的にClientIdを2番目のフィールドにしたので、同じフィールドのclientId変数を変更して返すことができました。他のより複雑なケースでは、別のフィールドでそれを行う必要があるかもしれません。ただし、そのプレースホルダーフィールドを結果から削除するには、クエリ全体を副選択に埋め込み、必要なフィールドを最上位のクエリで正しい順序で定義する必要があります。



    1. オラクルはUNIXエポック時間を日付に変換します

    2. mysqljsonの値で配列要素を削除します

    3. リンクされた列がnullになる可能性がある2つのテーブルから選択します

    4. mysqlで特定の日付範囲のレポートを作成する方法