sql >> Databasteknik >  >> RDS >> Mysql

enkla sätt att välja rader från alla tabeller

Om alla tabeller har samma struktur kan du använda en UNION fråga för att returnera rader från alla tre tabellerna samtidigt:

$check = mysqli_query($con, "SELECT * FROM text WHERE keyword='$string'
                             UNION
                             SELECT * FROM sticker WHERE keyword='$string'
                             UNION
                             SELECT * FROM image WHERE keyword='$string'");

Detta ger dig motsvarande uppsättning rader som dina tre befintliga frågor ger dig. Observera att det inte kommer att finnas något sätt att avgöra vilken tabell en given rad kom från, så du kanske vill lägga till ett extra fält för att indikera att t.ex.

$check = mysqli_query($con, "SELECT *, 'text' AS src FROM text WHERE keyword='$string'
                             UNION
                             SELECT *, 'sticker' AS src FROM sticker WHERE keyword='$string'
                             UNION
                             SELECT *, 'image' AS src FROM image WHERE keyword='$string'");


  1. detta är fel ORA-12154:TNS:kunde inte lösa den angivna anslutningsidentifieraren?

  2. Hur man INNER JOIN 3 tabeller med CodeIgniter

  3. Vad är salt när det gäller MYSQL sha1?

  4. Webbseminarium:Nya funktioner i Postgres 12 [Följa upp]