Mysql
 sql >> база данни >  >> RDS >> Mysql

Разширена Mysql заявка за получаване на главен запис, ако две условия съвпадат на различни редове дъщерни записи

Наистина, както намекна AsConfused, трябва да направите две присъединявания към TABLE2 с помощта на псевдоними

-- both of these are tested :

-- find t1 where it has 2 and 7 in t2

    select t1.*
    from table1 t1
    join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
    join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7

-- find t1 where it has 2 and 7 in t2, and no others in t2

select t1.*, ovx.id
    from table1 t1
      join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
      join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7
      LEFT OUTER JOIN table2 ovx on t1.id=ovx.masterid and ovx.optionValue not in (2,7)
    WHERE ovx.id is null


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wordpress актуализира mysql таблица

  2. MySQL код на грешка:1064. Имате грешка във вашия SQL синтаксис

  3. Най-добрият начин за вмъкване на JSON данни в MYSQL

  4. Експортирайте данни от MySQL в Excel с UTF-8 кодиране

  5. Архивиране на логически бази данни с помощта на MySQL Shell