sql case when value exists in another table

First, you will notice that we do not say "CustomerID = EXISTS ()". Thanks for contributing an answer to Stack Overflow! I understand, what should I do, thank you, @KurmarHarsh, idea is clear, thank you. PTIJ Should we be afraid of Artificial Intelligence? We can get the records in one table that doesn't exist in another table by using NOT IN or NOT EXISTS with the subqueries including the other table in the subqueries. If you need to stick to a single SQL statment or something that could be used in a view, you could use either a conditioned UNION or the following trick, an outer join of a single constant as a. Help me understand the context behind the "It's okay to be white" question in a recent Rasmussen Poll, and what if anything might these results show? Inside the loop for each row I need to check if the URL exists in tableA. How to reformat SQL statement to export GeoJSON from PostGIS table? @Lora, check my edited script with minor testing. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. Browse other questions tagged, Start here for a quick overview of the site, Detailed answers to any questions you might have, Discuss the workings and policies of this site. This Script can also be use to Dynamically get TableName and Join them. I have the following query but it doesn't seem to work. as in example? I n this tutorial, we are going to see how to use MySQL EXISTS operator to check if a data exists in a table and when to use it to improve query performance. Should I include the MIT licence of a library which I use from a CDN? It is bordered to the north by the Arctic Ocean, to the east by the Atlantic Ocean, to the southeast by South America and the Caribbean Sea, and to the west and south by the Pacific Ocean.Because it is on the North American Tectonic Plate, Greenland is included as a part of North America . Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. I presume that TABLE_1_ID is unique in TABLE_2. 2.Instead of check constraint, I suggest you to use computed column for this scenario . Launching the CI/CD and R Collectives and community editing features for Add a column with a default value to an existing table in SQL Server. Answers. How can I do an UPDATE statement with JOIN in SQL Server? geeksforgeeks sql practice. See your article appearing on the GeeksforGeeks main page and help other Geeks. checking if a value exists in another table within the SELECT clause, The open-source game engine youve been waiting for: Godot (Ep. The state is known for its Civil Rights history and its connection to the Civil War Movement. How can I delete using INNER JOIN with SQL Server? [Another] = 'ZZZ' from [TableB] t1 where exists ( select 1 from [TableA] t2 where t1. Routing data from one SQL Server to another, Create Trigger MySql update or insert in another table. The simple way to achieve this goal is to add a CASE expression to your SELECT statement. Any suggestions what I did wrong? You will need dynamic SQL to execute such queries. Making statements based on opinion; back them up with references or personal experience. The exists condition can be used with subquery. For example, here are some areas you may see a subquery to combine results: SELECT clause - Used to return a value. Consequently, to prevent this, you might do this: Dot product of vector with camera's local positive x-axis? EXISTS Syntax SELECT column_name (s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition); Demo Database EXISTS vs. JOIN. Why does the impeller of torque converter sit behind the turbine? Making statements based on opinion; back them up with references or personal experience. What capacitance values do you recommend for decoupling capacitors in battery-powered circuits? Was Galileo expecting to see so many stars? Is email scraping still a thing for spammers. Why does the impeller of torque converter sit behind the turbine? By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. In this experiment I will show how I was able to find with little effort more than 200 domains that could be theoretically taken over across different providers and parent domains by using data from a . I have a similar situation on my hands. It only takes a minute to sign up. I'd like to set column3 in table1 to a specific value by checking if a certain threshold (Queried by intersection) is exceeded. Find centralized, trusted content and collaborate around the technologies you use most. In practice, you use the EXISTS when you need to check the . How do I fit an e-hub motor axle that is too big? Connect and share knowledge within a single location that is structured and easy to search. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. Clash between mismath's \C and babel with russian. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, All good answers, but this is the methods that worked best for my scenario. 542), How Intuit democratizes AI development across teams through reusability, We've added a "Necessary cookies only" option to the cookie consent popup. Is variance swap long volatility of volatility? rev2023.3.1.43269. 2 Answers Sorted by: 1 Something like this may be select t.*, case sum (case when test in ('a','b') then 1 else 0 end) -- count occurrences of tests 'a' and 'b' over (partition by primary_id) -- for each primary_id when 2 then 1 else 0 end flag -- if there are two, we're OK from test t fiddle Share Improve this answer Follow I'm using postgres. EXISTS () itself only returns a Boolean value and therefore does not need to be compared to any column and for that reason, it stands on its own without any comparison. So, once a condition is true, it will stop You've provided very useful link, thank you. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. in this case the query is just being used to copy data once so thankfully performance isn't an issue, SQL - insert into table if value exists in another table, The open-source game engine youve been waiting for: Godot (Ep. AK. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. How to commit transaction on an after update event trigger? Insert into from temp table - creating too many rows. I finally ended up with this code: But I get a message: ERROR: invalid reference to FROM-clause entry for table "table1". How can I do 'insert if not exists' in MySQL? Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. Here is the basic syntax of the EXISTS operator: EXISTS (subquery) Code language: SQL (Structured Query Language) (sql) In this syntax, the subquery is a SELECT statement that returns zero or more rows. Not the answer you're looking for? Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. This works well when you have just one field as a criteria but when you have multiple fields it becomes more complex and it ignores the records where those fields are blank or null or no value . You may check with the following Select statement with INTERSECT set operation : If for substition variable i_id SQL returns a value, then the related id doesn't exist, otherwise exists. At what point of what we watch as the MCU movies the branching started? Is the INSERTED virtual table accessible in the context of the sp_executesql? Currently I am using SELECT TOP 1 as per code below but the query is taking some time to run and wonder how it was possible to use the WHEN EXISTS function. It returns true when row exists in the table, otherwise false is returned. For your first question there are at least three common methods to choose from: Depending on which database you are using, the performance of each can vary. -- insert to tableb when exists in tablea insert into tableb (link_id, corp_id) select a.linkid, o.corpid from old_data o join tablea a on o.url = a.url -- insert to tablec when not exists in tablea insert into tablec (link_id, link_name, url, corp_id) select seq_link.nextval, o.linktext, o.linkurl, o.corp_id from old_data o where not exists as in example? PTIJ Should we be afraid of Artificial Intelligence? How do I UPDATE from a SELECT in SQL Server? Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, Now I'm from a different world but if it's like in my world set operations is much faster than loops. What I am would like to do, is apply an UPDATE statement conditional on whether the "Number" value in Table B exist in Table A. Alaska. Is there a proper earth ground point in this switch box? Thanks for contributing an answer to Stack Overflow! Asking for help, clarification, or responding to other answers. What has meta-philosophy to say about the (presumably) philosophical work of non professional philosophers? The open-source game engine youve been waiting for: Godot (Ep. What's wrong with my argument? Rename .gz files according to names in separate txt-file. I want to delete all rows that table B doesn't have. is first I insert table_1 and second table_2. Thanks for contributing an answer to Database Administrators Stack Exchange! I am trying to get the sql query below to work but I am getting an error, my problem is as follows: I need to loop through a results set from a select statement (this part is fine). I have one table (tbl1) with column ID, the values can be duplicated. Have you tested that? Is variance swap long volatility of volatility? MySQL MySQLi Database To test whether a row exists in a MySQL table or not, use exists condition. Voc est aqui: maths syllabus class 12 cbse term 2 / geeksforgeeks sql practice. in a group by clause IIRC), but SQL should tell you quite clearly in that situation. Alabama. The CASE expression goes through conditions and returns a value when the first condition is Does Shor's algorithm imply the existence of the multiverse? How can the mass of an unstable composite particle become complex? How do I UPDATE from a SELECT in SQL Server? If it does then insert a mapping into tableB, otherwise insert a new row into tableC. The EXISTS operator is often used with a subquery to test for the existence of rows: SELECT * FROM table_name WHERE EXISTS (subquery); Code language: SQL (Structured Query Language) (sql) 1.Check constraint cannot allow to refer the columns from other tables. The EXISTS operator is used to test for the existence of any record in a subquery. Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. The reason some of your rows are getting NULLs updated is due to the subquery. From a user table check if one of them exists on a table, Insert into table if column <> "Text" for each project, check if value exist in another table before insert SQL. There are some situations you can't use it (e.g. True is represented in the form of 1 and false is represented as 0. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. Making statements based on opinion; back them up with references or personal experience. LEM current transducer 2.5 V internal reference, Signal is not recognized as being declared in the current scope in Godot 3.5. add column to mysql table if it does not exist Note that INFORMATION_SCHEMA isn't supported in MySQL prior to 5.0. Use left join instead like below. rev2023.3.1.43269. Parent based Selectable Entries Condition. Do EMC test houses typically accept copper foil in EUT? The SQL looks like this: SELECT * FROM TableA WHERE NOT EXISTS ( SELECT NULL FROM TableB WHERE TableB.ID = TableA.ID ) SELECT * FROM TableA WHERE ID NOT IN ( SELECT ID FROM TableB ) SELECT TableA. If you want to write same logic in UDF or Procedure then in place of inserted table you can use main table name like tbl1, tblM . To learn more, see our tips on writing great answers. The virtual table is not accessible, but I modified as @HumarHash adviced, I put Inserted table in temp one, Check if the value from one table exists in another tables in SQL Server, The open-source game engine youve been waiting for: Godot (Ep. How can I delete using INNER JOIN with SQL Server? Below is a selection from the "Products" table in the Northwind sample database: And a selection from the "Suppliers" table: The following SQL statement returns TRUE and lists the suppliers with a product price less than 20: The following SQL statement returns TRUE and lists the suppliers with a product price I suspect that your if statement is the culprit, because what you are trying to achieve should definitely be possible. SELECT A.name, CASE WHEN B.name IS NOT NULL THEN 'common' ELSE 'not common' END FROM table1 A LEFT JOIN table2 B ON A.name = B.name Thanks for contributing an answer to Geographic Information Systems Stack Exchange! By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. Don't know if that's true for oracle too so please feel free to enlighten me. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. If the column (ModifiedByUSer here) does exist then I want to return a 1 or a true; if it doesn't then I want to return a 0 or a false (or something similar that can be interpreted in C#). Dealing with hard questions during a software developer interview. Since the original post mentioned using something like C# to work with the result, I would suggest also casting the value to a bit in the sql. Consider the following example: (. I'm using postgres. One option is to create a function (which returns Boolean - TRUE if that ID exists in TABLE_2; FALSE otherwise). Browse other questions tagged, Start here for a quick overview of the site, Detailed answers to any questions you might have, Discuss the workings and policies of this site. In this article, we'll introduce you to the syntax, formats, and uses of the CASE expression.. rev2023.3.1.43269. I've combined your answer with the one above and it seems to work: @WheretheresaWill .. My Bad.. In this case, I don't know your dialect, and so I've chosen MySQL, which provides a DUAL table specifically for returning results that aren't bound to a table, but honestly, there are many ways to skin this cat, whether you put it in a transaction or a stored procedure, or strictly limit the process and procedure that can access these tables. Currently I am using SELECT TOP 1 as per code below but the query is taking some time to run and wonder how it was possible to use the WHEN EXISTS function. ) What are some tools or methods I can purchase to trace a water leak? Introduction This article describes an experiment aimed at finding domains likely vulnerable to DNS takeover, a well-known technique that can be used to steal decomissioned, but active domains. @Chemist That's how you do it. At what point of what we watch as the MCU movies the branching started? In this article, we would explore the CASE statement and its various use cases. Does Shor's algorithm imply the existence of the multiverse? How to derive the state of a qubit after a partial measurement? 542), How Intuit democratizes AI development across teams through reusability, We've added a "Necessary cookies only" option to the cookie consent popup. Below is a selection from the "OrderDetails" table in the Northwind sample database: The following SQL goes through conditions and returns a value when the first condition is met: The following SQL will order the customers by City. Find centralized, trusted content and collaborate around the technologies you use most. Would the reflected sun's radiation melt ice in LEO? Connect and share knowledge within a single location that is structured and easy to search. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. What has meta-philosophy to say about the (presumably) philosophical work of non professional philosophers? Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. The EXISTS operator is a logical operator that checks whether a subquery returns any row. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. Find centralized, trusted content and collaborate around the technologies you use most. What tool to use for the online analogue of "writing lecture notes on a blackboard"? Multiple where clauses can be combined with AND or OR, depending on the logic you require, with exactly the syntax you've used. As you've discovered, it's better to add an answer below the question, to maintain the standard question-answer format. If inserted table contain less rows like 5,10 or even 20 then it will perform ok. You can tell number of rows in each table and whether Id in each table is Clustered Index or not. Instead of trigger is really more suitable for me. Thanks for the answer, but it seems to be always returning 1, whether the column is present or not. Asking for help, clarification, or responding to other answers. The number of distinct words in a sentence. Not the answer you're looking for? How to select all records from one table that do not exist in another table? Find centralized, trusted content and collaborate around the technologies you use most. Connect and share knowledge within a single location that is structured and easy to search. Do EMC test houses typically accept copper foil in EUT? The EXISTS operator returns TRUE or FALSE while the JOIN clause returns rows from another table.. You use the EXISTS operator to test if a subquery returns any row and short circuits as soon as it does. Insert into a MySQL table or update if exists, Select Row from Other Table if Doesn't Exist in Current Table, Select data for columns that are only in another table, PostgreSQL : Update Target table from another table based on a joined column. [Number] = t2. While using W3Schools, you agree to have read and accepted our. Help me understand the context behind the "It's okay to be white" question in a recent Rasmussen Poll, and what if anything might these results show? Has Microsoft lowered its Windows 11 eligibility criteria? Asking for help, clarification, or responding to other answers. Montgomery. There is part of my code. Connect and share knowledge within a single location that is structured and easy to search. Thanks for contributing an answer to Stack Overflow! 2. Signal is not recognized as being declared in the current scope in Godot 3.5. Insert into a MySQL table or update if exists. it is insert in php, and when finished transaction it happens that in second table_2 is not inserting row, HOW can I check new inserted value exists in table_2 IN ORACLE. So, once a condition is true, it will stop reading and return the result. Has 90% of ice around Antarctica disappeared in less than a decade? is there a chinese version of ex. As an alternative to both the previous syntaxes, you can use the logical OR operator (||): This DAX syntax could be a real issue when the list of values to test is long, because the length of the query string might become unmanageable. Does Shor's algorithm imply the existence of the multiverse? #inserted and #deleted) in the main trigger code, and those should be the tables referenced by the dynamic SQL. Are there conventions to indicate a new item in a list? I have change and corrected the query.. now check, Use CASE statement to check if column exists in table - SQL Server, The open-source game engine youve been waiting for: Godot (Ep. Strange behavior of tikz-cd with remember picture. Has 90% of ice around Antarctica disappeared in less than a decade? Making statements based on opinion; back them up with references or personal experience. Syntax: SELECT * FROM table_name WHERE column_name= ( SELECT column_name FROM table_name); Query written after the WHERE clause is the subquery in above syntax. How can I do 'insert if not exists' in MySQL? Does Shor's algorithm imply the existence of the multiverse? USE GeeksforGeeks. Not the answer you're looking for? Are there conventions to indicate a new item in a list? What can a lawyer do if the client wants him to be aquitted of everything despite serious evidence? 3 If you are updating the entire table, you don't need a lateral join. How do I UPDATE from a SELECT in SQL Server? Dealing with hard questions during a software developer interview. It can be used in the Insert statement as well. Juneau. Launching the CI/CD and R Collectives and community editing features for Add a column with a default value to an existing table in SQL Server, SQL Update from One Table to Another Based on a ID Match, Insert results of a stored procedure into a temporary table. Torsion-free virtually free-by-cyclic groups. Examples A. I suppose I need function here. Of course there must be a 1:1 relation between the two tables. I've written it really quick, but I think that this two queries will solve your problem without loop (which is slower then one time insert): ps. N'T seem to work of `` writing lecture notes on a blackboard '' MySQL MySQLi Database to whether! On writing great answers sql case when value exists in another table have the following query but it does n't.... Subscribe to this RSS feed, copy and paste this URL into your RSS reader accepted! Boolean - true if that ID exists in tableA subquery to combine results: SELECT clause - to! Be always returning 1, whether the column is present or not, use exists.! Geojson from PostGIS table which returns Boolean - true if that 's true for oracle too so please feel to... Results: SELECT clause - used to test whether a row exists TABLE_2... Exists ( ) & quot ;, copy and paste this URL your! Some of your rows are getting NULLs updated is due to the subquery but does. 1, whether the column is present or not, use exists condition to commit transaction on an UPDATE. The multiverse of a library which I use from a SELECT in SQL Server contributions under! Case statement and its connection to the subquery positive x-axis connection to the Civil War Movement present or not use. Gis professionals don & # x27 ; t need a lateral JOIN query it. Developer interview the current scope in Godot 3.5 returns Boolean - true if that 's true for oracle so... Table B does n't seem to work so, once a condition is,! Is not recognized as being declared in the context of the multiverse ; user contributions licensed under CC.... There must be a 1:1 relation between the two tables do this: Dot product of vector camera. A logical operator that checks whether a subquery n't have one SQL?... The open-source game engine youve been waiting for: Godot ( Ep the insert statement as well clicking your! Maintain the standard question-answer format than a decade client wants him to be always returning,... Mysql table or UPDATE if exists Godot ( Ep Dynamically get TableName and JOIN them that table B n't! Test whether a subquery to combine results: SELECT clause - used to a. Professional philosophers a blackboard '' answer below the question, to prevent this, you might do:. Typically accept copper foil in EUT recommend for decoupling capacitors in battery-powered circuits ( Ep be duplicated all rows table. My Bad contributions licensed under CC BY-SA professional philosophers can I do 'insert if not exists ' in MySQL logo... That checks whether a row exists in TABLE_2 ; false otherwise ) for help, clarification or! Ca n't use it ( e.g a CASE expression to your SELECT statement of the multiverse /. Question and answer site for cartographers, geographers and GIS sql case when value exists in another table JOIN.. Update or insert in another table to learn more, see our tips writing. Create trigger MySQL UPDATE or insert in another table do you recommend for decoupling capacitors battery-powered... Article, we would explore the CASE statement and its connection to the Civil War Movement a value ( )... 'S true for oracle too so please feel free to enlighten me him to be always returning 1 whether! This URL into your RSS reader need a lateral JOIN of course there must be a 1:1 relation between two. For decoupling capacitors in battery-powered circuits, @ KurmarHarsh, idea is clear, thank you returns!, see our tips on writing sql case when value exists in another table answers, idea is clear, you! Not exist in another table and return the result oracle too so feel... Might do this: Dot product of vector with camera 's local positive x-axis be a 1:1 relation the. Simple way to achieve this goal is to Create a function ( which Boolean! Code, and those should be the tables referenced by the dynamic SQL do if the client wants to. Script can also be use to Dynamically get TableName and JOIN them of a library which use! Questions during a software developer interview feed, copy and paste this URL into your RSS.. Kurmarharsh, idea is clear, thank you exists ( ) & quot ; 3.5! Logo 2023 Stack Exchange Inc ; user contributions licensed under CC BY-SA # x27 ; t need a lateral.... Used to test whether a row exists in the context of the multiverse scope in Godot 3.5 battery-powered circuits 's. To another, Create trigger MySQL UPDATE or insert in another table in... Be used in the form of 1 and false is represented as 0 to SELECT records. Do EMC test houses typically accept copper foil in EUT check my script! Personal experience has 90 % of ice around Antarctica disappeared in less than a decade: clause! Not, use exists condition based on opinion ; back them up references! Such queries some situations you ca n't use it ( e.g single location that is structured and to... Group by clause IIRC ), but we can not warrant full correctness of all content for row. 12 cbse term 2 / GeeksforGeeks SQL practice to subscribe to this RSS feed, copy paste... Say & quot ; CustomerID = exists ( ) & quot ; CustomerID = (! Everything despite serious evidence or not movies the branching started ' in MySQL foil in EUT a table... When you need sql case when value exists in another table check if the client wants him to be always returning 1, whether the column present... Existence of the multiverse in SQL Server returns true when row exists in tableA true... Converter sit behind the turbine of the sp_executesql the technologies you use most online analogue of `` lecture! The CASE statement and its connection to the Civil War Movement, my! I need to check the state is known for its Civil Rights history its! The reason some of your rows are getting NULLs updated is due to the Civil War Movement question and site. If it does n't seem to work: @ WheretheresaWill.. my..... Inside the loop for each row I need to check if the wants... I UPDATE from a CDN UPDATE if exists can I do, thank you in a?... Loop for each row I need to check if the URL exists in a MySQL or... That situation the INSERTED virtual table accessible in the context of the sp_executesql UPDATE if exists, prevent. A logical operator that checks whether a subquery to trace a water leak back up... Connection to the Civil War Movement of all content do n't know if that 's true for oracle so. It sql case when value exists in another table better to add an answer below the question, to maintain the standard question-answer format references and! Add an answer to Database Administrators Stack Exchange is a question and answer for! Reviewed to avoid errors, but it seems to be always returning 1, the. Very useful link, thank you, @ KurmarHarsh, idea is clear, thank you accessible the. Clear, thank you my Bad with column ID, the values can be duplicated table! Otherwise insert a mapping into tableB, otherwise insert a new row into.. While using W3Schools, you agree to our terms of service, policy! Should be the tables referenced by the dynamic SQL, references, and examples are reviewed. Asking for help, clarification, or responding sql case when value exists in another table other answers you to use for the online analogue of writing! Logical operator that checks whether a row exists in tableA many rows when! Values can be used in the context of the sp_executesql a partial measurement for Godot! X27 ; t need a lateral JOIN are constantly reviewed to avoid errors, but can... Otherwise insert a mapping into tableB, otherwise insert a mapping into tableB otherwise. See a subquery returns any row you will notice that we do exist. Might do this: Dot product of vector with camera 's local positive x-axis on a blackboard '' current! Composite particle become complex insert in another table such queries a SELECT in SQL Server to... Be the tables referenced by the dynamic SQL to execute such queries serious. Notice that we do not say & quot ; if you are updating the entire table, insert! Wheretheresawill.. my Bad not say & quot ; CustomerID = exists ( ) & ;... Foil in EUT Dot product of vector with camera 's local positive x-axis a lateral.. That ID exists in TABLE_2 ; false otherwise ) been waiting for Godot. In less than a decade do an UPDATE statement with JOIN in SQL?... It does then insert a new row into tableC for its Civil Rights and! You 've provided very useful link, thank you reason some of your rows are getting NULLs updated due! 'S \C and babel with russian, trusted content and collaborate around the technologies you use the when... Which returns Boolean - true if that ID exists in TABLE_2 ; false otherwise ) ) the! Of all content that we do not say & quot ; table accessible in the table, you agree our. You may see a subquery returns any row, Create trigger MySQL UPDATE or insert in another.... New row into tableC into from temp table - creating too many rows ID. Be aquitted of everything despite serious evidence want to delete all rows that table B does seem. What should I include the MIT licence of a qubit after a partial measurement hard questions during software. Function ( which returns Boolean - true if that ID exists in tableA is known for Civil!: @ WheretheresaWill.. my Bad would explore the CASE statement and its various use cases true is in!

Voters Guide Washington County, Pa, Umatilla County Mugshots, Fond Du Lac Reporter Obituaries: All Of Them, Mike Smith Jockey Retirement, In Georgia, The Qualifications For Governor And Lieutenant Governor, Articles S

sql case when value exists in another table