sql >> Databáze >  >> RDS >> Mysql

snadné způsoby výběru řádků ze všech tabulek

Pokud mají všechny tabulky stejnou strukturu, můžete použít UNION dotaz na vrácení řádků ze všech tří tabulek najednou:

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

Získáte tak ekvivalentní sadu řádků, jakou vám poskytují vaše tři existující dotazy. Všimněte si, že nebude možné určit, ze které tabulky daný řádek pochází, takže možná budete chtít přidat další pole, které označí, že např.

$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. Jak vložit záznamy z tabulky do jiné bez duplicit

  2. Více SQL, méně kódu, s PostgreSQL

  3. aktivní sumace záznamů v codeigniteru

  4. Jak zřetězit řetězce řetězcového pole v dotazu PostgreSQL „seskupit podle“?