| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | [discrete][[esql-lookup]]=== `LOOKUP`experimental::["LOOKUP is highly experimental and only available in SNAPSHOT versions."]`LOOKUP` matches values from the input against a `table` provided in the request,adding the other fields from the `table` to the output.**Syntax**[source,esql]----LOOKUP table ON match_field1[, match_field2, ...]----*Parameters*`table`::The name of the `table` provided in the request to match.If the table's column names conflict with existing columns, the existing columns will be dropped.`match_field`::The fields in the input to match against the table.*Examples*// tag::examples[][source,console,id=esql-lookup-example]----POST /_query?format=txt{  "query": """      FROM library    | SORT page_count DESC    | KEEP name, author    | LOOKUP era ON author    | LIMIT 5  """,  "tables": {    "era": {      "author": {"keyword": ["Frank Herbert", "Peter F. Hamilton", "Vernor Vinge", "Alastair Reynolds", "James S.A. Corey"]},      "era":    {"keyword": [ "The New Wave",           "Diamond",      "Diamond",           "Diamond",           "Hadron"]}    }  }}----// TEST[setup:library]Which returns:[source,text]----        name        |     author      |      era--------------------+-----------------+---------------Pandora's Star      |Peter F. Hamilton|DiamondA Fire Upon the Deep|Vernor Vinge     |DiamondDune                |Frank Herbert    |The New WaveRevelation Space    |Alastair Reynolds|DiamondLeviathan Wakes     |James S.A. Corey |Hadron----// TESTRESPONSE[s/\|/\\|/ s/\+/\\+/]// TESTRESPONSE[non_json]// end::examples[]
 |