title: How to find all tables that have foreign keys that reference particular table.column and have values for those foreign keys?
body: <p>I have a table whose primary key is referenced in several other tables as a foreign key.  For example:</p>
  
  <pre><code>  CREATE TABLE `X` (
      `X_id` int NOT NULL auto_increment,
      `name` varchar(255) NOT NULL,
      PRIMARY KEY  (`X_id`)
    )
    CREATE TABLE `Y` (
      `Y_id` int(11) NOT NULL auto_increment,
      `name` varchar(255) NOT NULL,
      `X_id` int DEFAULT NULL,
      PRIMARY KEY  (`Y_id`),
      CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
    )
    CREATE TABLE `Z` (
      `Z_id` int(11) NOT NULL auto_increment,
      `name` varchar(255) NOT NULL,
      `X_id` int DEFAULT NULL,
      PRIMARY KEY  (`Z_id`),
      CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
    )
  </code></pre>
  
  <p>Now, I don't know how many tables there are in the database that contain foreign keys into X like tables Y and Z. Is there a SQL query that I can use to return:</p>
  
  <ol>
  <li>A list of tables that have foreign keys into X</li>
  <li>AND which of those tables actually have values in the foreign key</li>
  </ol>